[问题解决方案](多人共同合并场景)git已merge到master分支代码且被同事代码覆盖如何回退
创始人
2024-03-19 21:34:33
0

git已merge到master分支代码如何回退(多人共同合并)

  • 场景
  • 已经被同事代码覆盖的解决方案(无需强制合并权限)
    • 代码revert后又需要重新启用怎么办
  • 如果是未受保护分支代码的回退且只有你一人合并的代码 可以直接使用下面的命令即可
  • 如果只是commit没有push 剔除错误commit的方法
  • 如何查看commitId

场景

master分支自己开发的需求branch_a已经合并push,但是代码出现错误或者暂时不需要上线,此时同事A,与B 都在这之后提交了代码,怎么办。(master分支受保护不能回退,即使可以回退也需要联系已合并分支代码的同事重新合并,比较麻烦且容易出错)。楼主这边合并的代码涉及到第三方一起上线,因为比较紧急的回滚,所幸改动不大,就重新new分支,把改动的部分先剔除掉重新上线。回过头来找解决方案。

已经被同事代码覆盖的解决方案(无需强制合并权限)

git revert a6d1c4b5(回退版本的commitid 一般输前5位即可)

在这里插入图片描述

该命令是剔除非合并分支代码的commit,如果是 合并提交 的commit 需使用下面这条。(什么是合并分支 合并分支即为合并某个分支后在master生成的commit)

git revert -m 1 a6d1c4b5(回退版本的commitid 一般输前5位即可)

-m 后面一般填1 即可,1 代表merge前master分支代码的最后一次快照。2代表merge分支的上一次commit快照。git revert 做的是剔除哪俩个commit版本之间的改动,当然是回到merge前的最后一次快照。如果还不懂,可看这篇点这里

// 获取当前 合并提交 commit的父分支
git cat-file -p [MERGE_COMMIT_ID]将按顺序显示父分支。列出的第一个-m 1是第二个-m 2。

代码revert后又需要重新启用怎么办

使用 git revert 命令重新提交剔除后的代码,可是开发的需求还在commit2上面,这个时候在合并之前的分支会提示没有更改的东西,因为之前的commit已经提交过了。这个时候怎么办呢 revert revert的commitId即可

git revert commit5(图内的第五次提交)

如果是未受保护分支代码的回退且只有你一人合并的代码 可以直接使用下面的命令即可

git reset --hard a6d1c4b5(回退版本的commitid 一般输前5位即可)
// 强制提交
git push -f

该命令会将本地分支代码回退到指定的commitId ,然后需要强制重新提交。适用于快速回退的那种情况
详细可以了解 git撤销已push的代码
楼主拿下图举例,如果commit3和commit4都是提交的错误代码 直接
git reset --hard commit2Id 本地分支代码就会回到commit2的版本。
之后 git push -f 强制提交就可以了。不过这样做的话commit3和commit4提交的代码就会丢失。做之前先备份一次分支。
在这里插入图片描述

本命令适用于自己一个人开发或者目前只有自己提交代码的分支(如果是master分支,不能 git push -f 强制提交,如果已经提交到master分支且不能强制提交的情况不适用)

如果只是commit没有push 剔除错误commit的方法

git reset --soft a6d1c4b5(回退版本的commitid 一般输前5位即可)

**该命令适用于还没有提交到远端分支的情况。**在提交代码的时候,commit之后,然后我又在工作区添加了东西,这时候突然发现,上一次的commit有错误的文件,需要重新修改,但是我添加的东西又不想丢失,而且我想修改上一次的提交,这时候可进行git reset --soft 版本号
在这里插入图片描述

如图所示,git reset --soft commit2 后,commit3和commit4代码还会在本地,只是撤销了commit,最终再提交就变成commit5。这个命令不会丢失代码。但是如果代码已经合并到远程分支就需要用到git pull(解决冲突后提交)或者git push -f 强制提交。

如何查看commitId

如何查看commitid

希望本文可以帮到你。

相关内容

热门资讯

济南起步区“民生政策进社区”活...   鲁网12月26日讯深冬微寒,社区里却暖意融融。在起步区崔寨街道凤凰理想社区的小广场上,一排排政策...
振芯科技召开临时股东大会 三项... 围绕振芯科技(300101)的控制权纷争已延续数年之久,如今,双方又针对多项上市公司相关治理制度修订...
吉利威睿起诉欣旺达动力:因电芯... 据悉,吉利旗下威睿电动汽车技术(宁波)有限公司起诉欣旺达动力科技股份有限公司,索赔金额高达23亿元。...
央行:将实施更加积极有为的宏观... 近日,中国人民银行发布了《中国金融稳定报告(2025)》。下一步,金融系统将实施更加积极有为的宏观政...
阳西各镇妇联开展农村妇女法律讲... 12月以来,阳西县妇联联合阳西县司法局,组织各镇开展农村妇女法律讲座系列活动,旨在深入贯彻落实法治乡...
重构人才评价体系 成都东部新区... 封面新闻记者 柴枫桔 12月26日,成都东部新区产业人才政策发布会暨2025年四季度“双招双引”投资...
“鲜”人一步!自贸试验区昆明片... 目前,中国是全球最大的榴莲进口国,占全球市场份额90%以上,云南榴莲进口量已跃居全国第二、西部第一。...
废旧动力电池回收和综合利用管理... 记者在调研中了解到,动力电池回收产业在政策扶持与资本涌入下催生了庞大的产能;但另一方面,早期布局的产...
重庆建工(600939)披露涉... 截至2025年12月26日收盘,重庆建工(600939)报收于3.3元,较前一交易日下跌2.37%,...
欣旺达子公司被起诉,涉案金额2... 【大河财立方消息】12月26日,欣旺达发布公告称,公司子公司欣旺达动力科技股份有限公司作为被告,于2...