记一次测试环境git翻车经历

本来想拉一个功能分支进行新的功能开发,合并代码发现没有冲突居然有文件被修改了,贸然选择最近的一次回滚提交,没想到不假思索的push -f 导致一部分dev主干的代码不见了。

事故记录

开发分支origin/dev,功能分支file

合并之后发现我并没有修改任何代码,冲突都是选择dev分支的。但是却有一两个文件自动修改了,本能的觉得先会退再说然后再找原因,然后就选中最近的一个点,进行行了push -f,然后错误就产生了。

当我选中第二个点之后就变成了这样

git log也变成这样

这是reflog日志

4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{0}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
2b5dc76c2 (origin/dev) HEAD@{1}: merge origin/dev: Fast-forward
4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{2}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
2b5dc76c2 (origin/dev) HEAD@{3}: commit (merge): Merge branch 'file' into dev
46cb1af51 (origin/dev, dev) HEAD@{4}: checkout: moving from dev to dev
46cb1af51 (origin/dev, dev) HEAD@{5}: checkout: moving from 0cc0f3332769c4c920c1ef5eac68ea5d5598879c to dev
0cc0f3332 HEAD@{6}: checkout: moving from dev to 0cc0f3332
16d26a5a8 (origin/home, home) HEAD@{7}: reset: moving to HEAD@{1}
4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{8}: checkout: moving from home to dev
16d26a5a8 (origin/home, home) HEAD@{9}: checkout: moving from dev to home
4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{10}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
836279e82 HEAD@{11}: commit (merge): Merge branch 'file' into dev
46cb1af51 (origin/dev, dev) HEAD@{12}: checkout: moving from file to dev
4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{13}: checkout: moving from prod to file
4b9a2ba6c (HEAD -> dev, origin/prod, prod, file) HEAD@{14}: commit: ops:修复冲突
bd0e9531b HEAD@{15}: commit (merge): Merge remote-tracking branch 'origin/home' into prod
878c72a08 HEAD@{16}: checkout: moving from dev to prod
46cb1af51 (origin/dev, dev) HEAD@{17}: checkout: moving from prod to dev
878c72a08 HEAD@{18}: reset: moving to HEAD
878c72a08 HEAD@{19}: reset: moving to HEAD
878c72a08 HEAD@{20}: checkout: moving from dev to prod
7c4f807e4 HEAD@{21}: merge origin/home: Merge made by the 'ort' strategy.
0cc0f3332 HEAD@{22}: merge origin/home: updating HEAD
0cc0f3332 HEAD@{23}: checkout: moving from home to dev
16d26a5a8 (origin/home, home) HEAD@{24}: commit: ops: 更新测试用例

处理

还好同事有本地最新的代码,直接覆盖解决了分支危机,之后还是另可合并也不要轻易强制推送。

事后总结

后面根据最新的de分支提交记录,查看记录找到46cb1af51点是最新的

执行命令: git reset --hard 46cb1af51

\HEAD 现在位于 46cb1af51 Merge branch 'prod' into dev

呼终于回来了,面对困难的时候还是要冷静思考,git的操作和后悔机制还是很好的,360度无死角解决你各种问题,简直良心工具。

分析结果

这还是对git的异常情况处理少,简单的提交合并谁都会,但是碰到问题还是的深入研究,这次的问题主要还是选错了分支回退的点,选中了file分支的某个点,然后回到了file分支,而不是根据dev主干上某个合并的点进行回退,git自然的把file分支记录当成了主干,把dev分支当成了合并过来的代码。所以才产生了最近几天的记录都没有了的情况。只是大意手残选了一个最近的点进行了push,push容易恢复难啊,以此记录错误经历。

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

引用

Git进阶系列 | 8. 用Reflog恢复丢失的提交_git reflog 恢复-CSDN博客

Git 命令 checkout、reset、revert、reflog 使用介绍_git reflog-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/214960.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE Websocket笔记

参考链接 [UE4 C入门到进阶]12.Websocket网络通信 - 哔哩哔哩 包含怎么用Nodejs 写测试服务器 UE4_使用WebSocket和Json(上) - 知乎 包含Python写测试服务器 UE4_使用WebSocket和Json(下) - 知乎 示例代码 xxx.Build.cs"W…

带有 RaspiCam 的 Raspberry Pi 监控和延时摄影摄像机

一、说明 一段时间以来,我一直想构建一个运动激活且具有延时功能的树莓派相机,但从未真正找到我喜欢的案例。我在thingiverse上找到了这个适合树莓派和相机的好案例。它是为特定的鱼眼相机设计的,但从模型来看,我拥有的廉价中国鱼…

重温经典struts1之常用标签

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 上一篇,我们学习了struts的基本概念,怎样搭建struts开发环境,从编写formbean,action到jsp页面,以及怎样将他…

Flink之流的转换

ProcessFuncion处理函数 功能 拥有富函数功能 - 生命周期方法 - 状态编程对元素的处理功能processElement, 在不同的处理函数中,该方法的名字略有区别定时器编程 TimeService:定时服务,可以用于注册定时器,删除定时器ontimer():定时器触发后会自动调用该…

C++中字符串详解

在C语言中只能通过字符串数组来模拟字符串,没有字符串类型。在C引入了string类来表示字符串类型。从而用它定义字符串。 在C语言中: char str[] "abc"; char str[] {a,b,c,\0}; char* str "abc"; //这三种形式是C语言…

Java TCP(一对一)聊天简易版

客户端 import java.io.*; import java.net.Socket; import java.util.Date; import javax.swing.*;public class MyClient {private JFrame jf;private JButton jBsend;private JTextArea jTAcontent;private JTextField jText;private JLabel JLcontent;private Date data;p…

推荐一个FL Studio最适配的midi键盘?

Hello大家好!好消息!好消息!特大好消息! 水果党们!终于有属于自己的专用MIDI键盘啦! 万众期待的Novation FLKEY系列 正式出炉! 做编曲和音乐制作的朋友们,对水果软件FLSTUDIO应该…

使用xshell连接虚拟机(服务器)

作者:余小小 Xshell Xshell [1] 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以…

2023年度盘点:智能汽车、自动驾驶、车联网必读书单

【文末送书】今天推荐几本自动驾驶领域优质书籍 前言 2023年,智能驾驶和新能源汽车行业仍然有着肉眼可见的新进展。自动驾驶技术继续尝试从辅助驾驶向自动驾驶的过渡,更重要的是相关技术成本的下降。根据《全球电动汽车展望2023》等行业报告&#xff0c…

vue-baidu-map实现在地图上选择范围并解决相关问题

vue-baidu-map实现在地图上选择范围并解决相关问题 实现地图上选择不规则范围实现功能遇到的问题1、覆盖物多边形怎么才能盖住覆盖物点2、遇到其他问题 实现地图上选择不规则范围 这个功能比较简单,只需要使用vue-baidu-map插件的覆盖物多边形功能就行了。直接看文…

dToF直方图之美_激光雷达多目标检测

直方图提供了一种简单有效的方法来分析信号分布并识别与目标存在相对应的峰值,并且能够可视化大量数据,让测距数形结合。在车载激光雷达中,对于多目标检测,多峰算法统计等,有着区别于摄像头以及其他雷达方案的天然优势。 如下图,当中有着清晰可见的三个峰值,我们可以非…

Java智慧校园-中小学校园管理系统源码

智慧校园系统是通过信息化手段,实现对校园内各类资源的有效集成 整合和优化,实现资源的有效配置和充分利用,将校务管理过程的优化协调。为校园提供数字化教学、数字化学习、数字化科研和数字化管理。 致力于为家长和教师提供一个全方位、多层…

消费增值:一种改变消费观念的新模式

据统计,全球电子商务市场在过去的五年内以每年20%的速度增长,预计到2025年将达到5.5万亿美元。然而,在这个庞大的市场中,消费者在购物后往往只获得了商品或服务本身,而没有获得更多的附加价值。为了改变这种消费观念&a…

内网穿透的应用-如何结合Cpolar内网穿透工具实现在IDEA中远程访问家里或者公司的数据库

文章目录 1. 本地连接测试2. Windows安装Cpolar3. 配置Mysql公网地址4. IDEA远程连接Mysql小结 5. 固定连接公网地址6. 固定地址连接测试 IDEA作为Java开发最主力的工具,在开发过程中需要经常用到数据库,如Mysql数据库,但是在IDEA中只能连接本…

SpringMVC项目出现404

目录 问题讲解: 解决方案: 1、处理器映射器和处理器适配器以及视图解析器没有配置好 2、Controller的包扫描没有加或者包扫描的配置是错误的 3、当然也有说jar包没有 4、请求地址是错误的 5、还有一种解决办法说web.xml配置DispatcherServlet的时…

Android Studio的笔记--String和byte[]

String和byte[]的相互转换,字节数组转换 String转换byte[]文本16进制字节数组 byte[]转换String文本16进制 其它 String转换byte[] 文本 将字符串(String)转换为字节(byte)的方法。默认使用的是UTF-8编码 StandardCh…

二叉树题目:在受污染的二叉树中查找元素

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:在受污染的二叉树中查找元素 出处:1261. 在受污染的二叉树中查找元素 难度 5 级 题目描述 要求…

脱碱软化树脂Tulsimer CXO-5 MP 高盐水除钙镁树脂

一、产品介绍 Tulsimer CXO-5 MP 是一款大孔弱酸性丙烯酸系阳离子交换树脂,能除去水中的碱度和硬度,特别是除去水中的碳酸氢盐、碳酸盐及其它碱性盐类,适合运用于纯水 ,脱碱软化及选择性的去除重金属。适合在宽广的 pH 及温度范围情况下操作…

深入理解软件测试中的Web请求流程!

在软件开发的过程中,软件测试是不可或缺的一环,它有助于确保软件系统的稳定性、可靠性和安全性。而在众多测试中,Web请求流程的测试显得尤为重要,因为几乎所有的现代应用都离不开网络交互。接下来我们将深入探讨软件测试中完整的W…

【带头学C++】----- 九、类和对象 ---- 9.10 C++设计模式之单例模式设计

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注,不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.10 C设计模式之单例模式设计 举例说明: 9.10 C设计模式之单例模式设计 看过我之前的文章的,简单讲解过C/Q…