cherry-pick多个commitid时的顺序说明


     有的时候,我们在一个分支上提交了几个commit,然后我们会需要提交到其他分支上,一般情况下,我们会采用的merge的方式来合并分支,另外一种方式是只需要其中几个提交时,我们会cherry-pick到分支上,那么当要cherry-pick的几个提交之间有依赖关系要怎么处理呢?

 比如,我们在branch_test上修改了三个提交,分别是commit1,commit2,commit3,其中commit1的改动是添加了一个test.txt的文件,commit2是在test.txt文件中写入了"test",commit3是再test.txt中追加了"test11",我们需要将这三个提交cherry-pick到branch_target分支上,很明显,这三个提交是有依赖关系的

commit3  (再将“test11”追加到test.txt)

commit2    (将“test”写入test.txt)

commit1     (创建test.txt)

     有的人可能会觉得,既然最后一个提交commit3已经是最终结果了,那么直接cherry-pick这个提交到目的分支上不就可以了吗?其实是不行的,我在gerrit上直接cherry-pick这个提交到branch_target分支,报错失败,有冲突。既然有冲突,那么就解决冲突,我把这个提交使用命令行的方式cherry-pick到本地的branch_target分支上,结果报错是“delete by us :test.txt ”,是因为这个文件在这个分支上并不存在,所以他就报这个错了。

      那么要怎么操作这种有关联的提交呢,首先先把commit1 cherry-pick到branch_target上,并把提交合并到branch_target,然后再把commit2 cherry-pick到branch_target上,再把提交合并到branch_target上,最后commit3也是一样的,cherry-pick到branch_target上,然后再合入提交。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM