到目前為止,你已經學會了如何創建、合并和刪除分支。除此之外,我們還需要學習如何管理分支,在日后的常規工作中會經常用到下面介紹的管理命令。
`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` 強制執行,就像上面提示信息中給出的那樣。
- 1. 起步
- 1.1 關于版本控制
- 1.2 Git 簡史
- 1.3 Git 基礎
- 1.4 安裝 Git
- 1.5 初次運行 Git 前的配置
- 1.6 獲取幫助
- 1.7 小結
- 2. Git基礎
- 2.1 取得項目的 Git 倉庫
- 2.2 記錄每次更新到倉庫
- 2.3 查看提交歷史
- 2.4 撤消操作
- 2.5 遠程倉庫的使用
- 2.6 打標簽
- 2.7 技巧和竅門
- 2.8 小結
- 3. Git分支
- 3.1 何謂分支
- 3.2 分支的新建與合并
- 3.3 分支的管理
- 3.4 利用分支進行開發的工作流程
- 3.5 遠程分支
- 3.6 分支的衍合
- 3.7 小結
- 4. 服務器上的Git
- 4.1 協議
- 4.2 在服務器上部署 Git
- 4.3 生成 SSH 公鑰
- 4.4 架設服務器
- 4.5 公共訪問
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git 守護進程
- 4.10 Git 托管服務
- 4.11 小結
- 5. 分布式Git
- 5.1 分布式工作流程
- 5.2 為項目作貢獻
- 5.3 項目的管理
- 5.4 小結
- 6. Git工具
- 6.1 修訂版本(Revision)選擇
- 6.2 交互式暫存
- 6.3 儲藏(Stashing)
- 6.4 重寫歷史
- 6.5 使用 Git 調試
- 6.6 子模塊
- 6.7 子樹合并
- 6.8 總結
- 7. 自定義Git
- 7.1 配置 Git
- 7.2 Git屬性
- 7.3 Git掛鉤
- 7.4 Git 強制策略實例
- 7.5 總結
- 8. Git與其他系統
- 8.1 Git 與 Subversion
- 8.2 遷移到 Git
- 8.3 總結
- 9. Git 內部原理
- 9.2 Git 對象
- 9.3 Git References
- 9.4 Packfiles
- 9.5 The Refspec
- 9.6 傳輸協議
- 9.7 維護及數據恢復
- 9.8 總結
- 9.1 底層命令 (Plumbing) 和高層命令 (Porcelain)