天天看點

Git簡明指南

1.起步

1.1 設定username&email

$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
           

1.2 檢視配置

git config --list
           

1.3 初始化倉庫、跟蹤檔案并送出

$ git init
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
           

2.記錄檔案變化

2.1 檢視檔案狀态

$ git status -s

 M README
M  lib/simplegit.rb
MM Rakefile
A  lib/git.rb
?? LICENSE.txt
           

M代表modify,有兩個可以出現的位置,

出現在右邊的 M 表示該檔案被修改了但是還沒放入暫存區,

出現在左邊的 M 表示該檔案被修改了并放入了暫存區,

兩個M表示該檔案被修改并放入暫存區後又被修改了。

2.2 添加檔案至暫存區

git add file
           

git add是個多功能指令:可以用它跟蹤新檔案,

或者把已修改檔案放到暫存區,還能把合并時沖突的檔案标記為已解決狀态。

注意!如果你git add之後修改檔案,這個檔案會同時出現在暫存區和非暫存區,這時git commint隻送出你最後一次運作 git add 指令時的那個版本,而不是你的最新版本。

2.3 檔案對比

$ git diff --cached
           

表示暫存後(git add後)的檔案與原始版本的對比

表示未暫存(git add前)的檔案與原始版本的對比

也就是說,git add之前用git diff,之後用git diff --cached。

注意!如果暫存(git add)後又修改了檔案,

則git diff比較未暫存的檔案與暫存(git add)時的檔案。

2.4 跳過使用暫存區域(即跳過git add)

注意:隻會送出已經跟蹤過的檔案,不會送出新添加的檔案

2.5 移除檔案(即脫離追蹤):

$ git rm PROJECTS.md
           

2.6 移動或重命名

$ git mv README.md README
           

2.7 送出曆史

$ git log
           

2.8 取消暫存

$ git reset HEAD file
           

2.9 還原檔案

$ git checkout -- file
           

2.10 檔案狀态變化周期圖

Git簡明指南

3.遠端倉庫的使用

3.1 檢視遠端倉庫

$ git remote -v
origin	https://github.com/schacon/ticgit (fetch)
origin	https://github.com/schacon/ticgit (push)
           

orgin是遠端倉庫的别名,預設origin

3.2 詳細檢視遠端倉庫

$ git remote show origin
           

它會列出遠端倉庫的 URL 與跟蹤分支的資訊,

告訴你git pull時哪兩個分支會合并,git push時會推送到哪個分支

3.3 添加遠端倉庫

git remote add <shortname> <url>
           

3.4 移除遠端倉庫

$ git remote rm origin
           

3.5 推送至上遊

$ git push origin <local branch>:<remote branch>
           

3.6 檢出遠端分支(即建立本地分支)

$ git checkout -b serverfix origin/serverfix
$ git checkout --track origin/serverfix
# --track會預設建立同名分支,兩個指令作用相同,都會檢出分支并指定追蹤分支
           

3.7 檢視追蹤分支(即本地分支對應的遠端分支)

$ git fetch --all
$ git branch -vv
# -vv并沒有連接配接伺服器,是以需要先fetch,
# -vv還能夠檢視本地分支是否落後遠端分支
           

追蹤分支:如果你在git pull或git push時沒有顯式指定遠端分支,則預設追蹤分支為對應的遠端分支

3.8 修改目前分支的追蹤分支

$ git branch --set-upstream-to origin/serverfix
# --set-upstream-to也可以用-u代替
           

4.更新代碼

git pull與git fetch的差別

$ git pull origin master
# 相當于從遠端擷取最新版本并merge到本地
           
$ git fetch origin
# 從遠端擷取最新版本,但不會自動建立本地分支,
# 隻有一個不可以修改的 origin/master 指針,接下來你可以選擇merge或checkout
           
$ git fetch origin master:tmp 
# 從遠端倉庫master分支擷取最新,checkou到本地建立tmp分支

$ git diff tmp 
# 將目前分支和tmp進行對比

$ git merge tmp 
# 合并tmp分支到目前分支
           

5.分支

5.1 建立分支

git branch branchname
           

5.2 删除分支

git branch -d branchname
           

5.3 檢視所有分支&目前分支

git branch -a