章節 ▾ 第二版

A3.8 附錄 C:Git 命令 - 打補丁

打補丁

Git 中的一些命令圍繞著將提交視為它們引入的更改的概念,就好像提交系列是一系列補丁一樣。這些命令可以幫助您以這種方式管理您的分支。

git cherry-pick

git cherry-pick 命令用於獲取單個 Git 提交中引入的更改,並嘗試將其作為新提交重新引入到您當前所在的分支上。這對於單獨獲取一個或兩個提交而不是合併整個分支(這會引入所有更改)非常有用。

Rebasing and Cherry-Picking Workflows 中描述並演示了 Cherry picking。

git rebase

git rebase 命令基本上是自動化的 cherry-pick。它確定一系列提交,然後按相同的順序將它們一個接一個地 cherry-pick 到別處。

Rebasing 中詳細介紹了 Rebasing,包括覆蓋涉及已公開分支的協作問題。

我們在 Replace 中的一個示例中實際使用它,將歷史記錄拆分成兩個單獨的儲存庫,同時還使用了 --onto 標誌。

我們在 Rerere 中透過一個示例,經歷了在 rebase 過程中遇到合併衝突。

我們在 Changing Multiple Commit Messages 中的互動式指令碼模式中使用 -i 選項。

git revert

git revert 命令本質上是 git cherry-pick 的反向操作。它建立一個新提交,應用您要定位的提交中引入更改的完全相反的操作,從而有效地撤銷或恢復它。

我們在 Reverse the commit 中使用此命令來撤銷合併提交。