章节 ▾ 第二版

A3.8 附录 C:Git 命令 - 补丁

打补丁

Git 中的一些命令围绕着将提交视为引入的更改这一概念,就像提交序列是一系列补丁一样。这些命令可以帮助你以这种方式管理分支。

git cherry-pick

git cherry-pick 命令用于获取单个 Git 提交引入的更改,并尝试将其作为新的提交应用到你当前所在的分支上。这在只需要从分支中单独提取一两个提交,而不是合并整个包含所有更改的分支时非常有用。

关于拣选(Cherry picking)的描述和演示请参考 变基与拣选工作流

git rebase

git rebase 命令本质上是一个自动化的 cherry-pick。它确定一系列提交,然后将它们按相同的顺序一个接一个地拣选到另一个位置。

变基在 变基 中有详细介绍,包括涉及在已公开的分支上进行变基时的协作问题。

我们在 替换 中通过一个将历史记录拆分为两个独立仓库的示例来实际使用它,同时也使用了 --onto 标志。

我们在 Rerere 中讨论了变基过程中遇到合并冲突的情况。

我们还在 修改多个提交信息 中使用了带有 -i 选项的交互式脚本模式。

git revert

git revert 命令本质上是反向的 git cherry-pick。它会创建一个新的提交,该提交应用了目标提交所引入更改的完全相反的操作,从而有效地撤销或回滚该提交。

我们在 撤销提交 中使用它来撤销合并提交。