git如何在主干上合并分支的某一次提交

git如何在主干上合并分支的某一次提交

项目实际开发中经常会分出主干和分支,主干和分支扮演的角色往往不相同,主干的作用一般用于新功能开发后提交,分支用于修复缺陷提交,当新功能开发和修复缺陷比较多的时候,会使得主干和分支代码渐行渐远,这时候突然让你将分支上更改的某个缺陷(注意:不是分支上更改的所有缺陷)合并到主干上,这时候,你会怎么办呢?

最笨的一种办法就是在分支上将需要合并到主干的代码文件找出来,复制一份到主干下面,然后提交到主干上实现合并分支的某次提交;这种解决方法太不够优雅也容易出错;另一种高大上的方法就是使用git cherry-pick命令,具体如下:

主干上合并分支的某次提交:

1、查询分支每次提交的信息,获取需要合并的提交id;

进入分支,通过git log --oneline -3查询出分支最近3次提交的commitId,如果需要合并的提交不再最近3次中,可以通过更改数字3来获取需要合并提交的commitId

2、切换到主干,git cherry-pick <commitId>合并分支上commitId的提交

合并完成之后可能会出现以下三种情况:

1、最理想的结果,执行完git cherry-pick命令,合并成功,不需要再执行任何操作,即可在主干提交记录中找到合并分支的提交;

2、执行完git cherry-pick命令后,没有报错,但是在主干提交记录中也没有合并分支提交的记录,此时需要执行git push将执行合并完后的代码推送到远程仓库;

3、执行完git cherry-pick命令后出现报错提示有冲突,解决方法一:先解决冲突,然后再手动git commitgit push推送到远程仓库;或者解决方法二:执行git add .,然后执行git cherry-pick --continue继续完成合并;

总结:

上面详细讲述了使用git cherry-pick命令如何实现在主干上合并分支的某次提交,同样的我们也可以按照上面的方法实现在分支上合并主干上的某次提交,实现在分支1上合并分支2的某次提交等等;具体实现过程可以总结如下:

  • 1、获取待合并的提交id(commitId

  • 2、在需要合并提交的分支上执行git cherry-pick <commitId>

  • 3、如果遇到问题请参照上面可能出现情况的解决方法来解决

好的建议:

为了更大发挥git cherry-pick作用,在开发或修复缺陷时应该保持一个好的习惯就是及时提交,也就是一个新开发完成提交一次,一个缺陷修复完就提交一次,不要等到新开发和缺陷修复好后一起提交,这样导致每次提交不够独立,总之一句话:想要使用git cherry-pick在不同分支间穿梭自如地合并某次提交,前提要保证每次提交内容的独立性。

参考文献:

[1] [Git] Git整理(五) git cherry-pick的使用
[2] cherry-pick的错误分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值