到目前為止,你已經(jīng)學(xué)會(huì)了如何創(chuàng)建、合并和刪除分支。除此之外,我們還需要學(xué)習(xí)如何管理分支,在日后的常規(guī)工作中會(huì)經(jīng)常用到下面介紹的管理命令。
`git branch` 命令不僅僅能創(chuàng)建和刪除分支,如果不加任何參數(shù),它會(huì)給出當(dāng)前所有分支的清單:
~~~
$ git branch
iss53
* master
testing
~~~
注意看 master 分支前的 * 字符:它表示當(dāng)前所在的分支。也就是說(shuō),如果現(xiàn)在提交更新,master 分支將隨著開(kāi)發(fā)進(jìn)度前移。若要查看各個(gè)分支最后一個(gè)提交對(duì)象的信息,運(yùn)行 `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
~~~
要從該清單中篩選出你已經(jīng)(或尚未)與當(dāng)前分支合并的分支,可以用 `--merged `和 `--no-merged` 選項(xiàng)(Git 1.5.6 以上版本)。比如用 `git branch --merged `查看哪些分支已被并入當(dāng)前分支(譯注:也就是說(shuō)哪些分支是當(dāng)前分支的直接上游。):
~~~
$ git branch --merged
iss53
* master
~~~
之前我們已經(jīng)合并了 iss53,所以在這里會(huì)看到它。一般來(lái)說(shuō),列表中沒(méi)有 * 的分支通常都可以用 `git branch -d `來(lái)刪掉。原因很簡(jiǎn)單,既然已經(jīng)把它們所包含的工作整合到了其他分支,刪掉也不會(huì)損失什么。
另外可以用 `git branch --no-merged` 查看尚未合并的工作:
~~~
$ git branch --no-merged
testing
~~~
它會(huì)顯示還未合并進(jìn)來(lái)的分支。由于這些分支中還包含著尚未合并進(jìn)來(lái)的工作成果,所以簡(jiǎn)單地用 `git branch -d` 刪除該分支會(huì)提示錯(cuò)誤,因?yàn)槟菢幼鰰?huì)丟失數(shù)據(jù):
~~~
$ 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'.
~~~
不過(guò),如果你確實(shí)想要?jiǎng)h除該分支上的改動(dòng),可以用大寫(xiě)的刪除選項(xiàng) `-D` 強(qiáng)制執(zhí)行,就像上面提示信息中給出的那樣。
- 1. 起步
- 1.1 關(guān)于版本控制
- 1.2 Git 簡(jiǎn)史
- 1.3 Git 基礎(chǔ)
- 1.4 安裝 Git
- 1.5 初次運(yùn)行 Git 前的配置
- 1.6 獲取幫助
- 1.7 小結(jié)
- 2. Git基礎(chǔ)
- 2.1 取得項(xiàng)目的 Git 倉(cāng)庫(kù)
- 2.2 記錄每次更新到倉(cāng)庫(kù)
- 2.3 查看提交歷史
- 2.4 撤消操作
- 2.5 遠(yuǎn)程倉(cāng)庫(kù)的使用
- 2.6 打標(biāo)簽
- 2.7 技巧和竅門(mén)
- 2.8 小結(jié)
- 3. Git分支
- 3.1 何謂分支
- 3.2 分支的新建與合并
- 3.3 分支的管理
- 3.4 利用分支進(jìn)行開(kāi)發(fā)的工作流程
- 3.5 遠(yuǎn)程分支
- 3.6 分支的衍合
- 3.7 小結(jié)
- 4. 服務(wù)器上的Git
- 4.1 協(xié)議
- 4.2 在服務(wù)器上部署 Git
- 4.3 生成 SSH 公鑰
- 4.4 架設(shè)服務(wù)器
- 4.5 公共訪問(wèn)
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git 守護(hù)進(jìn)程
- 4.10 Git 托管服務(wù)
- 4.11 小結(jié)
- 5. 分布式Git
- 5.1 分布式工作流程
- 5.2 為項(xiàng)目作貢獻(xiàn)
- 5.3 項(xiàng)目的管理
- 5.4 小結(jié)
- 6. Git工具
- 6.1 修訂版本(Revision)選擇
- 6.2 交互式暫存
- 6.3 儲(chǔ)藏(Stashing)
- 6.4 重寫(xiě)歷史
- 6.5 使用 Git 調(diào)試
- 6.6 子模塊
- 6.7 子樹(shù)合并
- 6.8 總結(jié)
- 7. 自定義Git
- 7.1 配置 Git
- 7.2 Git屬性
- 7.3 Git掛鉤
- 7.4 Git 強(qiáng)制策略實(shí)例
- 7.5 總結(jié)
- 8. Git與其他系統(tǒng)
- 8.1 Git 與 Subversion
- 8.2 遷移到 Git
- 8.3 總結(jié)
- 9. Git 內(nèi)部原理
- 9.2 Git 對(duì)象
- 9.3 Git References
- 9.4 Packfiles
- 9.5 The Refspec
- 9.6 傳輸協(xié)議
- 9.7 維護(hù)及數(shù)據(jù)恢復(fù)
- 9.8 總結(jié)
- 9.1 底層命令 (Plumbing) 和高層命令 (Porcelain)
