问题背景:

公司使用码云企业版作为代码托管平台,采用master/dev分支分类进行代码管理,matser分支为保护分支,只能审核后在网页端提交合并(请求评审)。
此时dev代码合并到master后发现有问题需要回退上次一合并,此时只能在请求评审处点击回退按钮,回退后master并没有改动,而是新产生了一个revert_xxxx的新分支。

现有问题:

1.新产生的revert_xxxxx分支是什么分支,和以前的master/dev有什么关系?
2.回退后重新合并时发现并无改动,如何才能重新合并?

问题解答:

1.新产生的分支(revert_xxxxx)为master分支回退后的新分支,其中包括revert操作,因为master为保护分支,所以此时master分支上并无改动。也就是说:回退操作不会直接在master上执行!
2.此时想将dev重新合并到master,发现无法合并,因为git的revert并不是真正的回退操作,而是将上次的合并内容删除掉(反向提交),也就是说相当于上次合并的内容依然存在,revert操作只是将上次合并内容进行删除重新提交(反向提交)。

问题解决:

1.直接将新分支(revert_xxxxx)合并到master,master就存在回退记录了,然后直接将revert_xxxxx分支删除即可。
2.现在有dev/master双分支,master上已回退但是无法重新合并,此时需要将master合并到dev,让dev上也有这个退回记录,然后将dev再次退回(将revert记录revert,相当于重新提交),此时git就会在反向提交的记录上反向提交,这次就会把revert删除的内容重新提交回来,此时会生成新的操作记录,再次合并master即可。

总结:

1.码云revert后并不会产生改动,而是产生新分支,合并即可。
2.revert操作相当于反向提交改动,所以即使revert后master分支代码也比dev要新,所以无法提交,此时将master合并dev,dev分支revert上次revert即可!

希望可以帮助大家

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐