Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。
Git cherry-pick
git cherry-pick
命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。
在 变基与拣选工作流 一节中描述和演示了 Cherry picking
Git rebase
git rebase
命令基本是是一个自动化的 cherry-pick
命令。 它计算出一系列的提交,然后再以它们在其他地方以同样的顺序一个一个的 cherry-picks
出它们。
- 在 3.6 变基 一章中详细提到了此命令,包括与已经公开的分支的变基所涉及的协作问题。
- 在 7.13 替换 中我们在一个分离历史记录到两个单独的仓库的示例中实践了此命令,同时使用了
--onto
选项。 - 在 7.9 Rerere 一节中,我们研究了在变基时遇到的合并冲突的问题。
- 在 修改多个提交信息 一节中,我们也结合
-i
选项将其用于交互式的脚本模式。
Git revert
git revert
命令本质上就是一个逆向的 git cherry-pick
操作。 它将你提交中的变更的以完全相反的方式的应用到一个新创建的提交中,本质上就是撤销或者倒转。
我们在 还原提交 一节中使用此命令来撤销一个合并提交。
下一节:很多 Git 项目,包括 Git 本身,基本是通过邮件列表来维护的。 从方便地生成邮件补丁到从一个邮箱中应用这些补丁,Git 都有工具来让这些操作变得简单。