章节 ▾ 第二版

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

打补丁

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

git cherry-pick

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

有关拣选(cherry-picking)的描述和演示,请参阅 变基与拣选工作流

git rebase

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

有关变基的详细介绍,请参阅 变基,其中包括针对已公开分支进行变基所涉及的协作问题。

替换 (Replace) 一节中,我们通过一个将历史记录拆分为两个独立仓库的示例展示了其实际应用,并使用了 --onto 标志。

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

我们还在 修改多个提交信息 一节中,通过 -i 选项使用了它的交互式脚本模式。

git revert

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

我们在 撤销提交 (Reverse the commit) 一节中使用此命令来撤销合并提交。