Chapters ▾
2nd Edition
-
1. 開始
-
2. Git 基礎
- 2.1 取得一個 Git 倉儲
- 2.2 紀錄變更到版本庫中
- 2.3 檢視提交的歷史記錄
- 2.4 復原
- 2.5 與遠端協同工作
- 2.6 標籤
- 2.7 Git Aliases
- 2.8 總結
-
3. 使用 Git 分支
-
4. 伺服器上的 Git
- 4.1 通訊協定
- 4.2 在伺服器上佈署 Git
- 4.3 產生你的 SSH 公鑰
- 4.4 設定伺服器
- 4.5 Git 常駐程式
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第3方 Git 託管方案
- 4.10 總結
-
5. 分散式的 Git
-
6. GitHub
- 6.1 建立帳戶及設定
- 6.2 參與一個專案
- 6.3 維護專案
- 6.4 Managing an organization
- 6.5 Scripting GitHub
- 6.6 總結
-
7. Git 工具
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 總結
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. 附錄 A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Summary
-
A2. 附錄 B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. 附錄 C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
3.3 使用 Git 分支 - 分支管理
分支管理
到目前為止,你已經建立、合併和刪除過分支(branch);讓我們再來看一些分支管理工具,這將會在你開始全程使用分支時派上用場。
git branch
命令不僅能建立和刪除分支,
如果不加任何參數,你將會得到所有分支的簡易清單:
$ git branch
iss53
* master
testing
注意 master
分支前面的 *
字元,它表示目前所檢出(checkout)的分支(換句話說,HEAD
指向這個分支);
這意味著如果你現在提交,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 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
選項來強制執行,就像上面訊息中所提示的。