一个比较奇特的情景:有两个本地仓库A和B,现在需要将其中一个仓库A的几个提交应用到另一个仓库B上。
有一种思路是使用git的cherry-pick
:
- 首先在B的远程仓库地址中添加A;
- 将A中对应的分支fetch到B中;
- 在B里使用
cherry-pick
应用A的提交。
但我在这里要记录另一种方法。
生成patch文件
最直接的,生成从commitBar
(不包含)开始到最新提交的patch:
1 | > git format-patch commitBar |
生成的patch文件使用commit message命名,并且使用自动生成的序号做前缀来排序。
生成由最初的提交开始到commitBar
的patch;
1 | > git format-patch --root commitBar |
此外还有更多选项,详见文档。
应用patch文件
应用patch更简单:
1 | > git am patch/*.patch |
出现冲突等会提示错误,这时按照提示处理后继续就可以了。