git 回滚代码踩坑
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 回滚代码踩坑相关推荐
- git回滚代码版本 强制提交代码
git reset --hard [commit id] 回滚代码 git push --force 如果强制提交失败可以试试 git push origin 分支名 --force
- Git 回滚代码到指定版本
前言 在我们开发过程中,因各种原因,避免不了将业务代码回滚至指定版本,或者具体一些到某次commit. 下面我们将具体步骤及具体实现做分析. 操作前阅读 在代码回归操作过程中主要 围绕 git ...
- Git回滚代码到某个tag
开发中总会有人不小心将代码提交到错误的分支上,比如应该提到dev分支的代码提交到了master分支,可以使用git回滚到tag的方法进行回滚. 1.切换到待回滚分支 -- 查看分支 git branc ...
- idea git回滚代码
当多个人对同一个微服务进行开发,合并代码,有时候会出现合并代码分支错误,这个时候需要将代码进行回滚操作. 本文介绍,使用idea可视化操作. 1.右键项目,git-show history ,可以看到 ...
- Git回滚代码到某个commit
回退命令:$ git reset --hard HEAD^ 回退到上个版本 $ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git rese ...
- 拜托,不要再问我Git如何回滚代码
Hey git学习篇(5) 这个是Git学习的第5篇内容,今天我们来讲讲Git如何做代码回滚. 代码回滚 不知道大家在平常开发时中没有犯过这样一个错误,就是把IDE的配置或者项目运行的本地配置文件上传 ...
- Git如何回滚代码?
摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...
- git 代码回滚_能提交到远程的Git回滚
很多情况下我们需要回滚代码,最容易想到的就是git reset.但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了. 做一下试验,一个文件 ...
- sourceTree对git的新建项目、储藏代码、切换分支、回滚代码、提交代码
sourceTree是一个简单的图形化git管理工具 一.新建一个项目 二.储藏代码 三.切换分支 在切换分支之前,可以对当前分支进行储藏,若是想切回原来的分支直接右键储藏的分支选择应用储藏区即可,工 ...
最新文章
- 转 从头到尾彻底解析Hash表算法
- C# 多线程学习总结
- Java渐变进度条_Android ProgressBar自定义图片进度,自定义渐变色进度条
- Python推荐算法讲解
- nginx之Geoip读取地域信息模块
- win7计算机中丢失mfc120,mfc120.dll 64位
- python- 基础 map方法
- api签名_使用签名保护基于HTTP的API
- 从sqlite 迁移 mysql_将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库
- Java 笔试题---Java与编程模式--7月6日
- 谷歌 Provisional headers are shown 和360急速模式 网络连接错误
- Python random模块sample、randint、shuffle、choice随机函数
- 汽车品牌查询及车型大全查询
- 全景krpano相关问题解答
- 如何获取微信文章阅读数和点赞数
- Python的模式匹配
- EasyClick更新图库
- Dubbo集群容错模式之Failsafe实现
- Linux DPDK UIO
- 基于Python完成的配音软件之适用于有声主播
热门文章
- 钱币兑换问题(dp+数学)
- 计算机启动有一些花瓶,电脑花屏是怎么回事 电脑出现花屏的解决法【方法详解】...
- 规则引擎QLExpress
- STM32:中断的详细介绍及使用流程
- web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)
- NewLife 的 RocketMQ 的生产者每次都是新实例将只由一个消费者消费
- Redis命令介绍之键值对操作
- table 缩小行间距_table中设置tr行间距详解
- 通过java将Excel表格导入数据到数据库
- Linux 驱动开发 三十五:Linux 内核时钟管理