分支的管理
到目前為止,你已經學會了如何創建、合併和刪除分支。除此之外,我們還需要學習如何管理分支,在日後的常規工作中會經常用到下面介紹的管理命令。
git branch
命令不僅僅能創建和刪除分支,如果不加任何參數,它會給出當前所有分支的清單:
$ git branch
iss53
* master
testing
注意看 master
分支前的 *
字元:它表示當前所在的分支。也就是說,如果現在提交更新,master
分支將隨著開發進度前移。若要查看各個分支最後一個提交物件的資訊,運行 git branch -v
:
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
要從該清單中篩選出你已經(或尚未)與當前分支合併的分支,可以用 --merged
和 --no-merged
選項(Git 1.5.6 以上版本)。比如用 git branch --merged
查看哪些分支已被併入當前分支(譯注:也就是說哪些分支是當前分支的直接上游。):
$ git branch --merged
iss53
* master
之前我們已經合併了 iss53
,所以在這裡會看到它。一般來說,清單中沒有 *
的分支通常都可以用 git branch -d
來刪掉。原因很簡單,既然已經把它們所包含的工作整合到了其他分支,刪掉也不會損失什麼。
另外可以用 git branch --no-merged
查看尚未合併的工作:
$ git branch --no-merged
testing
它會顯示還未合併進來的分支。由於這些分支中還包含著尚未合併進來的工作成果,所以簡單地用 git branch -d
刪除該分支會提示錯誤,因為那樣做會丟失資料:
$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.
不過,如果你確實想要刪除該分支上的改動,可以用大寫的刪除選項 -D
強制執行,就像上面提示資訊中給出的那樣。