Git学习

   先配置下本地yum环境

[root@git-server ~]# cat /etc/yum.repos.d/CentOS-Base.repo 
[666]
name=666
baseurl=file:///mnt
gpgcheck=0
enabled=1

[root@git-server ~]# mount /dev/sr0 /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@git-server ~]# 

  安装git,看到已经安装上了

[root@git-server ~]# yum install git  -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Package git-1.7.1-3.el6_4.1.x86_64 already installed and latest version
Nothing to do
[root@git-server ~]# 

  输入git查看一下命令用法

[root@git-server ~]# git
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
           [-p|--paginate|--no-pager] [--no-replace-objects]
           [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
           [--help] COMMAND [ARGS]

The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   fetch      Download objects and refs from another repository
   grep       Print lines matching a pattern
   init       Create an empty git repository or reinitialize an existing one
   log        Show commit logs
   merge      Join two or more development histories together
   mv         Move or rename a file, a directory, or a symlink
   pull       Fetch from and merge with another repository or a local branch
   push       Update remote refs along with associated objects
   rebase     Forward-port local commits to the updated upstream head
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG

See 'git help COMMAND' for more information on a specific command.
[root@git-server ~]# 

  

设置用户名和邮箱,你以后提交代码的时候,别人可以知道用户名和邮箱,然后找到你

[root@git-server ~]# git config --global user.name "zhangsan"
[root@git-server ~]# git config --global user.email "zhangsan@163.com"
[root@git-server ~]# git config --list
user.name=zhangsan
user.email=zhangsan@163.com
[root@git-server ~]# 

  

打开颜色支持

[root@git-server ~]# git config --global color.ui true
[root@git-server ~]# git config --list
user.name=zhangsan
user.email=zhangsan@163.com
color.ui=true
[root@git-server ~]# 

  

创建一个目录,用于存放git

git init 代表初始化的意思

[root@git-server ~]# mkdir nmap
[root@git-server ~]# cd nmap/
[root@git-server nmap]# ll
total 0
[root@git-server nmap]# git init
Initialized empty Git repository in /root/nmap/.git/
[root@git-server nmap]# ll -al
total 12
drwxr-xr-x   3 root root 4096 Dec 20 17:12 .
dr-xr-x---. 26 root root 4096 Dec 20 17:12 ..
drwxr-xr-x   7 root root 4096 Dec 20 17:12 .git
[root@git-server nmap]# 

  

创建一个readme文件,此步骤可以省去,类似于使用手册,用前须知一样

[root@git-server nmap]# vim readme.txt
[root@git-server nmap]# cat readme.txt 
#create by nmap 2016-12-20
this is git home
[root@git-server nmap]#

  

输入命令git status,能看到下面readme.txt 带颜色,就是因为上面我们打开了color.ui,打开了颜色支持

[root@git-server nmap]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	readme.txt
nothing added to commit but untracked files present (use "git add" to track)
[root@git-server nmap]# 

  

执行git add  file,把它先添加到仓库了,然后再次执行git status,看到颜色变绿了,注意,这一步不是提交

[root@git-server nmap]# git add readme.txt 
[root@git-server nmap]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   readme.txt
#
[root@git-server nmap]# 

 

执行提交,-m后面跟的是此次提交的修改说明

e250946  类似一个序列号

[root@git-server nmap]# git commit -m "the first commit"
[master (root-commit) e250946] the first commit
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 readme.txt
[root@git-server nmap]# 

  

再次执行git status 提示当前工作目录已经是干净状态,没有未提交的东西

[root@git-server nmap]# git status
# On branch master
nothing to commit (working directory clean)
[root@git-server nmap]# 

  

再写一个文件练习下

[root@git-server nmap]# vim deploy.sh
[root@git-server nmap]# cat deploy.sh 
#!/bin/bash
echo hehe
[root@git-server nmap]# git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	deploy.sh
nothing added to commit but untracked files present (use "git add" to track)
[root@git-server nmap]# 

  

提交

[root@git-server nmap]# git add deploy.sh 
[root@git-server nmap]# git commit -m "2th commit"
[master 8a16518] 2th commit
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 deploy.sh
[root@git-server nmap]# ll
total 8
-rw-r--r-- 1 root root 22 Dec 20 17:30 deploy.sh
-rw-r--r-- 1 root root 44 Dec 20 17:14 readme.txt
[root@git-server nmap]# 

  

查看操作的历史记录,可以看到谁,邮箱是多少,什么时间,做了什么

[root@git-server nmap]# git log
commit 8a165184696a73c245fc07d156c9b1c4f4455ad2
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:33:04 2016 +0800

    2th commit

commit e250946d3cf402c28cef9ab432fb778374f2002d
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:26:15 2016 +0800

    the first commit
[root@git-server nmap]# 

  

对一个文件修改,添加一行

[root@git-server nmap]# echo hehe >>readme.txt 
[root@git-server nmap]# cat readme.txt 
#create by nmap 2016-12-20
this is git home
hehe
[root@git-server nmap]# git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@git-server nmap]# 

  

git diff file 命令可以用来对比前后变化的内容

[root@git-server nmap]# git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 943958e..d183b96 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 #create by nmap 2016-12-20
 this is git home
+hehe
[root@git-server nmap]# 

  

添加文件,然后提交,查看历史记录

[root@git-server nmap]# git add readme.txt 
[root@git-server nmap]# git commit -m "add 2hehe"
[master 4a0a533] add 2hehe
 1 files changed, 1 insertions(+), 0 deletions(-)
[root@git-server nmap]# git log
commit 4a0a533f45d6e2850a0cece2e94cb119801926c4
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:43:32 2016 +0800

    add 2hehe

commit 8a165184696a73c245fc07d156c9b1c4f4455ad2
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:33:04 2016 +0800

    2th commit

commit e250946d3cf402c28cef9ab432fb778374f2002d
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:26:15 2016 +0800

    the first commit
~
~
~
~
[root@git-server nmap]# 

  

假如上面修改错了,怎么回退呢,比如回退到上一个版本,HEAD^
回退到上2个版本。HEAD^^
回退到前3个版本。HEAD^^^

[root@git-server nmap]# git reset --hard HEAD^
HEAD is now at 8a16518 2th commit
[root@git-server nmap]# cat readme.txt 
#create by nmap 2016-12-20
this is git home
[root@git-server nmap]# 

  

再次看下日志

[root@git-server nmap]# git log
commit 8a165184696a73c245fc07d156c9b1c4f4455ad2
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:33:04 2016 +0800

    2th commit

commit e250946d3cf402c28cef9ab432fb778374f2002d
Author: zhangsan <zhangsan@163.com>
Date:   Tue Dec 20 17:26:15 2016 +0800

    the first commit
[root@git-server nmap]# 

 

怎么回退到指定版本呢,可以根据前面的序列号回退,这个是commit id 

[root@git-server nmap]# git reflog
8a16518 HEAD@{0}: HEAD^: updating HEAD
4a0a533 HEAD@{1}: commit: add 2hehe
8a16518 HEAD@{2}: commit: 2th commit
e250946 HEAD@{3}: commit (initial): the first commit
[root@git-server nmap]# git reset --hard e250946
HEAD is now at e250946 the first commit
[root@git-server nmap]# ll
total 4
-rw-r--r-- 1 root root 44 Dec 20 17:56 readme.txt
[root@git-server nmap]# 

  

 

posted on 2019-03-01 21:18  nmap  阅读(293)  评论(0编辑  收藏  举报

导航