-
1. 開始
-
2. Git 基礎
-
3. Git 分支
-
4. 伺服器上的 Git
- 4.1 協定
- 4.2 在伺服器上取得 Git
- 4.3 產生您的 SSH 公開金鑰
- 4.4 設定伺服器
- 4.5 Git Daemon
- 4.6 智慧 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 中遇到合併問題,git mergetool
命令只會啟動外部合併輔助工具。
git log
git log
命令用於顯示從最新提交快照向後專案可到達的已記錄歷史記錄。預設情況下,它只會顯示您目前所在分支的歷史記錄,但可以從中遍歷不同的或甚至是多個頭或分支。它也經常被用來顯示提交層級上兩個或多個分支之間的差異。
這個指令幾乎在本書的每一章都有使用,用來展示專案的歷史記錄。
我們在檢視提交歷史中介紹並深入探討這個指令。在那裡,我們檢視了 -p
和 --stat
選項,以了解每次提交引入了哪些內容,以及 --pretty
和 --oneline
選項,以更簡潔地檢視歷史記錄,以及一些簡單的日期和作者篩選選項。
在建立新分支中,我們使用 --decorate
選項來輕鬆視覺化分支指標的位置,並且使用 --graph
選項來查看發散的歷史記錄是什麼樣子。
在合併日誌和三個點中,我們介紹了如何使用 branchA…branchB
格式和 --left-right
語法,來查看一個分支或另一個分支中存在,但兩者都不存在的部分。在合併日誌中,我們還研究了如何使用 --merge
選項來幫助解決合併衝突的除錯,以及如何使用 --cc
選項來查看歷史記錄中的合併提交衝突。
在RefLog 短名稱中,我們使用 -g
選項來透過此工具檢視 Git reflog,而不是進行分支遍歷。
在搜尋中,我們研究了如何使用 -S
和 -L
選項來對程式碼中歷史上發生的事情進行相當複雜的搜尋,例如查看函數的歷史記錄。
在簽署提交中,我們了解如何使用 --show-signature
來根據是否有效簽署,在 git log
輸出中的每個提交中新增驗證字串。