欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Git回退(Revert)操作后无法重新合并的问题及解决

2025年04月02日 其他编程
问题背景公司使用码云企业版作为代码托管平台,采用master/dev分支分类进行代码管理,matser分支为保护分支,只能审核后在网页端提交合并(请求评审)。此时dev代码合并到master后发现有问

问题背景

公司使用码云企业版作为代码托管平台,采用master/dev分支分类进行代码管理,matser分支为保护分支,只能审核后在网页端提交合并(请求评审)。

此时dev代码合并到master后发现有问题需要回退上次一合并,此时只能在请求评审处点击回退按钮,回退后master并没有改动,而是新产生了一个revert_xxxx的新分支。

现有问题

新产生的revert_xxxxx分支是什么分支,和以前的master/dev有什么关系?

回退后重新合并时发现并无改动,如何才能重新合并?

问题解答

新产生的分支(revert_xxxxx)为master分支回退后的新分支,其中包括revert操作,因为master为保护分支,所以此时master分支上并无改动。也就是说:回退操作不会直接在master上执行!

此时想将dev重新合并到master,发现无法合并,因为git的revert并不是真正的回退操作,而是将上次的合并内容删除掉(反向提交),也就是说相当于上次合并的内容依然存在,revert操作只是将上次合并内容进行删除重新提交(反向提交)。

问题解决

直接将新分支(revert_xxxxx)合并到master,master就存在回退记录了,然后直接将revert_xxxxx分支删除即可。

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

总结

码云revert后并不会产生改动,而是产生新分支,合并即可。

revert操作相当于反向提交改动,所以即使revert后master分支代码也比dev要新,所以无法提交,此时将master合并dev,dev分支revert上次revert即可!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。