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

 更新时间:2025年04月02日 09:05:59   作者:coding4all  
这篇文章主要介绍了如何解决git revert后再次merge代码丢失问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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了。

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 12种最常用的网页编程语言简介(值得收藏)

    12种最常用的网页编程语言简介(值得收藏)

    随着网站的越来越普及,与Web相关的开发技术持续热门,从开始简单的html到复杂的web开发语言asp、asp.net、php、jsp等等,在此,我就借助SEO马龙博客的平台跟大家简单的介绍一下常见的12种网页编程语言
    2017-01-01
  • VS2019无法启动程序(系统找不到指定文件)解决办法

    VS2019无法启动程序(系统找不到指定文件)解决办法

    这篇文章主要介绍了VS2019无法启动程序(系统找不到指定文件)解决办法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Git本地操作进阶之版本回退,撤销修改与文件删除全攻略

    Git本地操作进阶之版本回退,撤销修改与文件删除全攻略

    在掌握Git本地仓库的基础操作后,如何修正错误提交,怎样找回误删文件,版本回退的风险与应对,成为开发者进阶的关键课题,下面小编就和大家详细介绍一下吧
    2025-11-11
  • htaccess语法教程

    htaccess语法教程

    前些天不小心删除了原来的博客系统,问过godaddy的客服,恢复数据需要150美元,另外还需要提供不少信息,我于是放弃,注册了这个nunumick.me,打算从头再来。
    2011-09-09
  • Git 教程之远程仓库详解

    Git 教程之远程仓库详解

    本文主要介绍Git 远程仓库的知识,这里整理了相关资料,及命令详解,图文并茂的介绍该部分内容,有需要的小伙伴可以参考下
    2016-09-09
  • 不懂编程该如何使用AI 编程技巧详解

    不懂编程该如何使用AI 编程技巧详解

    在当今数字化时代,编程不再是专属于程序员的领域,通过人工智能(AI)的协助,甚至是非编程专业人士也能轻松涉足,对于那些没有编程基础却渴望利用 AI 进行编程的人来说,AI 就是你编程学习的得力伙伴
    2023-11-11
  • 加速 PyTorch 模型训练的 9 个技巧(收藏)

    加速 PyTorch 模型训练的 9 个技巧(收藏)

    本指南从最简单的结构到最复杂的改动都有,可以使你的网络得到最大的好处。我会给你展示示例Pytorch代码以及可以在Pytorch- lightning Trainer中使用的相关flags,这样你可以不用自己编写这些代码,感兴趣的朋友一起看看吧
    2022-03-03
  • Web端扫码登录的原理和实现讲解

    Web端扫码登录的原理和实现讲解

    这篇文章主要介绍了Web端扫码登录的原理和实现,扫码登录相比较传统的密码登录更加快捷和安全,今天我们就来讲讲原理与实现,主要分为几种不同的解决方案,需要的朋友可以参考下
    2023-03-03
  • conda常用命令整理及用法详解

    conda常用命令整理及用法详解

    这篇文章主要为大家介绍了conda常用命令整理及用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • vscode入门教程之页面启动与代码调试

    vscode入门教程之页面启动与代码调试

    VScode是微软推出的一款轻量级的编辑器,采用了和VS相同的UI界面。今天小编给大家带来一篇如何使用vscode来进行最基本的工作的小教程,希望大家能够喜欢
    2020-01-01

最新评论