-
1. 起步
-
2. Git 基礎
-
3. Git 分支
-
4. 伺服器上的 Git
- 4.1 協議
- 4.2 在伺服器上部署 Git
- 4.3 生成 SSH 公鑰
- 4.4 架設伺服器
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方託管服務
- 4.10 小結
-
5. 分散式 Git
-
A1. 附錄 A: Git 在其他環境
- A1.1 圖形介面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 小結
-
A2. 附錄 B: 在應用程式中嵌入 Git
-
A3. 附錄 C: Git 命令
A3.4 附錄 C:Git 命令 - 分支和合並
分支與合併
Git 的分支和合並功能主要由為數不多的幾個命令實現。
git branch
git branch 命令實際上是一個分支管理工具。它可以列出您擁有的分支、建立新分支、刪除分支以及重新命名分支。
在 跟蹤分支 中,我們使用 git branch -u 選項來設定跟蹤分支。
最後,我們在 Git 引用 中深入探討了它的一些後臺工作原理。
git checkout
git checkout 命令用於切換分支並將內容檢出到您的工作目錄。
我們首先在 切換分支 中遇到該命令,以及 git branch 命令。
在 跟蹤分支 中,我們看到了如何使用 --track 標誌來開始跟蹤分支。
在 檢出衝突 中,我們使用 --conflict=diff3 來重新引入檔案衝突。
我們在 Reset 揭秘 中更詳細地探討了它與 git reset 的關係。
最後,我們在 HEAD 中深入瞭解了一些實現細節。
git merge
git merge 工具用於將一個或多個分支合併到您已檢出的分支中。然後,它會將當前分支前進到合併結果。
git merge 命令首次在 基本分支 中介紹。儘管在本書的各個地方都有使用,但 merge 命令的變化非常少——通常只是 git merge <branch>,後跟您要合併的單個分支的名稱。
我們在 公開專案 的末尾介紹瞭如何執行壓縮合並(Git 合併工作,但假裝它只是一個新提交,而不記錄您正在合併的分支的歷史)。
在 高階合併 中,我們詳細介紹了合併過程和命令,包括 -Xignore-space-change 命令和用於中止有問題的合併的 --abort 標誌。
在 簽名提交 中,我們學習瞭如何在專案使用 GPG 簽名時,在合併之前驗證簽名。
最後,我們在 子樹合併 中瞭解了子樹合併。
git mergetool
git mergetool 命令只是啟動一個外部合併助手,以防您在 Git 中遇到合併問題。
git log
git log 命令用於顯示專案從最新提交快照向後追溯的可達到的已記錄歷史。預設情況下,它只會顯示您當前所在分支的歷史記錄,但可以指定不同的或甚至多個頭或分支進行遍歷。它也經常用於在提交級別顯示兩個或多個分支之間的差異。
此命令幾乎在本書的每個章節中都用於演示專案的歷史。
我們在 檢視提交歷史 中介紹並深入討論了該命令。在那裡,我們查看了 -p 和 --stat 選項以瞭解每個提交引入的內容,以及 --pretty 和 --oneline 選項以更簡潔地檢視歷史記錄,以及一些簡單的日期和作者過濾選項。
在 建立新分支 中,我們使用 --decorate 選項來輕鬆視覺化分支指標的位置,並且我們還使用 --graph 選項來檢視分叉歷史的外觀。
在 小型私有團隊 和 提交範圍 中,我們介紹了 branchA..branchB 語法,用於使用 git log 命令檢視相對於另一個分支,某個分支特有的提交。在 提交範圍 中,我們對此進行了相當廣泛的探討。
在 合併日誌 和 三點 中,我們介紹了使用 branchA…branchB 格式和 --left-right 語法來檢視存在於一個分支但不在另一個分支中的內容。在 合併日誌 中,我們還探討了如何使用 --merge 選項來幫助除錯合併衝突,以及使用 --cc 選項來檢視歷史記錄中的合併提交衝突。
在 RefLog 簡寫 中,我們使用 -g 選項透過此工具檢視 Git reflog,而不是進行分支遍歷。
在 搜尋 中,我們探討了使用 -S 和 -L 選項來執行相當複雜的搜尋,以查詢程式碼中歷史上發生過的事情,例如檢視某個函式的歷史。
在 簽名提交 中,我們看到了如何使用 --show-signature 在 git log 輸出的每個提交中新增一個驗證字串,該字串基於提交是否有效簽名。