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

news2024/11/18 13:58:04

本来想拉一个功能分支进行新的功能开发,合并代码发现没有冲突居然有文件被修改了,贸然选择最近的一次回滚提交,没想到不假思索的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.coloradmin.cn/o/1302865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金额格式化,利率格式化

<el-inputplaceholder"请输入"size"medium"v-model"amt"maxlength"16":disabled"showBtn no || readOnly"oninput"this.value this.value.replace(/[^\d.]/g,).replace(/\.{2,}/g, .).replace(/^0(\d)/, $1) // 第…

Android--Jetpack--Databinding源码解析

慢品人间烟火色&#xff0c;闲观万事岁月长 一&#xff0c;基本使用 关于databinding的基本使用请看之前的文章 Android--Jetpack--Databinding详解-CSDN博客 二&#xff0c;xml布局解析 分析源码呢&#xff0c;主要就是从两方面入手&#xff0c;一个是使用&#xff0c;一个…

Nginx正则表达式

目录 1.nginx常用的正则表达式 2.location location 大致可以分为三类 location 常用的匹配规则 location 优先级 location 示例说明 优先级总结 3.rewrite rewrite功能 rewrite跳转实现 rewrite执行顺序 语法格式 rewrite示例 实例1&#xff1a; 实例2&#xf…

Vue3封装一个轮播图组件

先看效果 编写组件代码 CarouselChart.vue <template><div classimg-box><el-button clickpreviousImages v-ifprops.showBtn>←</el-button><div classimg><div styledisplay: flex;gap: 20px idmove><imgclassimg-item v-for(item…

hdlbits系列verilog解答(Ringer)-55

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 本次我们设计一个电路以实现对手机铃声和振动的控制。当工作在振动模式时&#xff0c;开启振动&#xff0c;否则开启铃声。 尝试只使用assign语句&#xff0c;测试一下你是否能将描述转化成数字逻辑电路。 二…

Guava反射工具详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天咱们聊聊Java反射&#xff0c;特别是在Guava这个强大的库中&#xff0c;它是怎么让反射变得更简单&#xff0c;更有趣的。咱们都知道&#xff0c;反射在Java中是个相当强大的特性&#xff0c;它允许程序在运…

基于ssm的校园快递一站式服务系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园快递一站式服务系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数…

【Java 基础】30 JDK动态代理

文章目录 1.定义2.原理3.使用1&#xff09;定义业务接口2&#xff09;实现 InvocationHandler 接口3&#xff09;生成代理类 4.优点5.缺点总结 动态代理是一种重要的 设计模式&#xff0c;它允许在运行时生成代理类来代替实际的类。动态代理主要通过反射机制实现&#xff0c;为…

计算机图形学——消隐算法

目录 消隐算法 &#xff08;1&#xff09;隐藏线消除算法 &#xff08;2&#xff09;隐藏面消除算法 曲面体消隐算法 3D Mesh 隐藏面消除算法 &#xff08;1&#xff09;深度缓冲器算法&#xff08;zBuffer&#xff09; 深度缓冲器 &#xff08;2&#xff09;深度排序…

机器学习基础介绍

百度百科&#xff1a; 机器学习是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。 …

mysql 链接超时的几个参数详解

mysql5.7版本中&#xff0c;先查看超时设置参数&#xff0c;我们这里只关注需要的超时参数&#xff0c;并不是全都讲解 show variables like %timeout%; connect_timeout 指的是连接过程中握手的超时时间,在5.0.52以后默认为10秒&#xff0c;之前版本默认是5秒&#xff0c;主…

学习人工智能-基础篇

背景 随着大模型的火爆&#xff0c;人工智能再次被推到高潮&#xff0c;其实它在众多行业领域已经落地很多应用&#xff0c;并给社会带来了巨大的经济价值。其中包括互联网、教育、金融、医疗、交通、物流等等。在测试领域也有一些落地的案例&#xff0c;作为测试人员&#xf…

关于个人职业选择

职业选择&#xff0c;一直是个老生常谈的话题。这并不是一个容易做的决定。 让我们来看看AI怎么说。 首先是方向性的回答&#xff1a; 然后是一些具体的回答 我个人比较倾向于深耕网络安全。这是一个很有趣也是一个持续发展着的领域。 不知道关于这个事情你怎么看&#xff0…

案例解决Redis高并发场景带来的缓存穿透、击穿、雪崩问题(超级详细!!)

假设你的网站流量量达到亿级&#xff0c;传统的去查询DB势必会给DB带来巨大的压力&#xff0c;甚至可能有宕机的风险&#xff0c;接下来我就分几个阶段&#xff0c;来讲诉各个场景可能会给DB带来巨大压力的可能&#xff0c;以及优化的方案。 缓存击穿&#xff1a;key对应的数据…

2023年12月11日:ui界面跳转

头文件&#xff1a;Second #ifndef SECOND_H #define SECOND_H#include <QWidget>namespace Ui { class Second; }class Second : public QWidget {Q_OBJECTpublic:explicit Second(QWidget *parent nullptr);~Second(); public slots:void jump_slot(); private:Ui::S…

飞桨星河文心SDK与open interpreter构成“小天网”雏形

飞桨星河文心SDK与open interpreter构成“小天网”雏形 开放式解释器open interpreter是大模型和自然语言交互的神器&#xff0c;本项目旨在体验文心大模型为底座的open interpreter。本项目只需使用CPU环境即可运行&#xff0c;直接运行即可“运行全部Cell”&#xff0c;本项…

访问控制列表ACL学习

ACL概念 ACL: ACL 是 Access Control List&#xff08;访问控制列表&#xff09;的缩写。它是一种用于管理和控制访问权限的机制或数据结构。ACL 用于确定谁可以访问特定资源&#xff08;例如文件、文件夹、网络资源等&#xff09;以及他们可以执行的操作。ACL 通常由一系列访…

【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法

近日&#xff0c;阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型&#xff0c;可以从简单的图片描述中生成高质量的提示词&#xff0c;从而使文生图模型能够生成更美观的图像。BeautifulPrompt通…

1、混合方式UI设计

1、混合方式UI设计 新建项目添加静态资源添加资源添加action添加菜单菜单栏工具栏中间编辑区域 代码添加其他组件字体和大小状态栏 添加槽函数UI设置的转到槽的手写的设置应用程序图标 代码 新建项目 MainWindow代码文件夹主窗口为 (QMainWindow) 添加静态资源 AppIcon.icoi…

【MATLAB】基于CEEMDAN分解的信号去噪算法(基础版)

代码的使用说明 【MATLAB】基于CEEMDAN分解的信号去噪算法&#xff08;基础版&#xff09; 代码流程图 代码效果图 获取代码请关注MATLAB科研小白的个人公众号&#xff08;即文章下方二维码&#xff09;&#xff0c;并回复CEEMDAN去噪 本公众号致力于解决找代码难&#xff0c;…