2021.08.10
背景:
发版日,下午把开发分支benz合入到master分支了,值班人又基于master分支拉了rb分支了,同期上线的还有其他4个人的分支。
我合并代码master期间,由于和master分支有冲突,先merge master into myBranch,然后解决冲突,再merge进master的。

然鹅,到了晚上突然通知,其他人的上线取消。但是我需要单独上线。所以需要回滚其他人的代码。

bad 操作一:
在本地benz分支查看git log,最顶上是一个merger操作,之后再没有操作了。所以直接本地git reset --hard到最后一次我的实际提交。然后push到远端,被拒绝!
理由:no-diff。
好吧,随便改点啥,再push。成功!但是git status时候发现

这……远端和本地各自偏离了。
因为reset的是本地,远端的还在。其实应该要把远端的也reset掉的,但git操作一般不能重置远端,风险大。
这条路失败!

bad 操作二:
在远端新拉一个备份分支benz_01,本地git fetch & git checkout benz_01
然后在本地git revert ${merge操作的commitId}。本地git log 看,好像成功了。merge的记录没了。
但是查看了别人的提交记录里的文件,竟然有的人的文件在我这个分支里还是存在的。没有revert干净??
不知道怎么混进来,但是宣告失败!

good 操作来了:
【失败原因】都是因为远端混入了别人的代码。那么怎么想办法把远端的代码踢掉呢,我又不能reset远端代码。
【解决方案】
1、直接在本地新建备份分支,而不是在远端新建。git checkout -b benz_02
2、git log查看一下本地日志,跟之前的初始日志一模一样。然后本地git reset --hard到我merge节点的前一个commit-id。
3、git log看一下,很好。多余的merge节点已经没了。再直接本地直推远端git push origin benz_02

完工,在远端检查一下benz_02和其他人的分支,不再有任何diff了。终于踢掉别人的代码。
然后基于前一次上线的rb分支,重新拉一个新的rb分支,单独合入我的代码。准备上线。

之前的原始分支benz已经不能用了。因为本地和远端的历史已经乱了。废弃之!

git 回滚代码踩坑相关推荐

  1. git回滚代码版本 强制提交代码

    git reset --hard [commit id] 回滚代码 git push --force 如果强制提交失败可以试试 git push origin 分支名 --force

  2. Git 回滚代码到指定版本

    前言  在我们开发过程中,因各种原因,避免不了将业务代码回滚至指定版本,或者具体一些到某次commit. 下面我们将具体步骤及具体实现做分析. 操作前阅读   在代码回归操作过程中主要 围绕 git ...

  3. Git回滚代码到某个tag

    开发中总会有人不小心将代码提交到错误的分支上,比如应该提到dev分支的代码提交到了master分支,可以使用git回滚到tag的方法进行回滚. 1.切换到待回滚分支 -- 查看分支 git branc ...

  4. idea git回滚代码

    当多个人对同一个微服务进行开发,合并代码,有时候会出现合并代码分支错误,这个时候需要将代码进行回滚操作. 本文介绍,使用idea可视化操作. 1.右键项目,git-show history ,可以看到 ...

  5. Git回滚代码到某个commit

    回退命令:$ git reset --hard HEAD^ 回退到上个版本 $ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git rese ...

  6. 拜托,不要再问我Git如何回滚代码

    Hey git学习篇(5) 这个是Git学习的第5篇内容,今天我们来讲讲Git如何做代码回滚. 代码回滚 不知道大家在平常开发时中没有犯过这样一个错误,就是把IDE的配置或者项目运行的本地配置文件上传 ...

  7. Git如何回滚代码?

    摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...

  8. git 代码回滚_能提交到远程的Git回滚

    很多情况下我们需要回滚代码,最容易想到的就是git reset.但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了. 做一下试验,一个文件 ...

  9. sourceTree对git的新建项目、储藏代码、切换分支、回滚代码、提交代码

    sourceTree是一个简单的图形化git管理工具 一.新建一个项目 二.储藏代码 三.切换分支 在切换分支之前,可以对当前分支进行储藏,若是想切回原来的分支直接右键储藏的分支选择应用储藏区即可,工 ...

最新文章

  1. 转 从头到尾彻底解析Hash表算法
  2. C# 多线程学习总结
  3. Java渐变进度条_Android ProgressBar自定义图片进度,自定义渐变色进度条
  4. Python推荐算法讲解
  5. nginx之Geoip读取地域信息模块
  6. win7计算机中丢失mfc120,mfc120.dll 64位
  7. python- 基础 map方法
  8. api签名_使用签名保护基于HTTP的API
  9. 从sqlite 迁移 mysql_将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库
  10. Java 笔试题---Java与编程模式--7月6日
  11. 谷歌 Provisional headers are shown 和360急速模式 网络连接错误
  12. Python random模块sample、randint、shuffle、choice随机函数
  13. 汽车品牌查询及车型大全查询
  14. 全景krpano相关问题解答
  15. 如何获取微信文章阅读数和点赞数
  16. Python的模式匹配
  17. EasyClick更新图库
  18. Dubbo集群容错模式之Failsafe实现
  19. Linux DPDK UIO
  20. 基于Python完成的配音软件之适用于有声主播

热门文章

  1. 钱币兑换问题(dp+数学)
  2. 计算机启动有一些花瓶,电脑花屏是怎么回事 电脑出现花屏的解决法【方法详解】...
  3. 规则引擎QLExpress
  4. STM32:中断的详细介绍及使用流程
  5. web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)
  6. NewLife 的 RocketMQ 的生产者每次都是新实例将只由一个消费者消费
  7. Redis命令介绍之键值对操作
  8. table 缩小行间距_table中设置tr行间距详解
  9. 通过java将Excel表格导入数据到数据库
  10. Linux 驱动开发 三十五:Linux 内核时钟管理