章节 ▾ 第二版

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 中使用此命令来撤销合并提交。