当前位置: 代码网 > it编程>编程语言>其他编程 > 如何解决git revert后再次merge代码丢失问题

如何解决git revert后再次merge代码丢失问题

2025年04月02日 其他编程 我要评论
git revert后再次merge代码丢失问题问题场景公司使用gitlab作为代码管理工具,开发人员新功能开发结束时(开发分支:feature-member),合并代码需要提交mr(pr)给相关负责

git revert后再次merge代码丢失问题

问题场景

公司使用gitlab作为代码管理工具,开发人员新功能开发结束时(开发分支:feature-member),合并代码需要提交mr(pr)给相关负责人,由负责人将代码合并到master。

此时产品说暂时不上线此版本,和下一个版本一起发布,为了保证master分支代码的准确性,我们使用git revert将本次mr撤销。

然后等下个版本开发完成后,提交了mr,发现变动的文件只有revert之后的变动,第一次mr的文件改动都没有了(git revert后再次merge,git默认会丢弃这段代码)。

解决方案

# 切换到master分支
git checkout master
git pull
# 基于master拉出一个分支 revert_tmp
git checkout -b revert_tmp

# 将之前git revert那次commit再次revert(commit号从git log可以查到)
git revert acd414e1cd42315ce93a9730db961155be140013
git checkout feature-member
git merge revert_tmp
git commit -m "revert"
git push

经过以上操作后,再次提pr,这样第一次revert之前的代码就可以看到了。

git revert 某次 merge 之后再重新 merge 代码被冲掉

问题

在 develop 分支发现 merge 某个 feature 分支时的代码有问题(如果是 feature 分支的代码有问题,只要修改该 feature 分支的代码,再 merge 到 develop 就好了。

如果是 merge 的时候冲突没有解决好则需要 revert 该次 merge),于是用 ’git revert < commit id > -m 1 ‘ 命令 revert 了该次 merge , 但是 revert 之后想把这个 feature 分支再重新merge到develop 分支时,发现 merge 不了。

解决方法

在 revert feature 的 merge 之后,checkout 到 feature 分支,

使用 git reset head^ 撤销上次提交(如果merge前有多个提交就撤消所有提交)

然后修改有问题的代码,代码没问题的话不修改也行

修改完后 ,将代码提交并强推到远程分支

git add .
git commit -m “”
git push -f

再 checkout develop 切换到 develop 分支

用 git merge 再merge 一次该feature分支,就会发现代码都 merge上去了

最后 push 到远程就ok了。

总结

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com