当前位置: 首页 > news >正文

恢复 git push -force 覆盖的提交记录

遇到一个问题,同事把远端的临时分支代码拉到本地后,对临时分支进行了git reset到了我改代码之前的一个commitid的位置,然后修改完后直接通过git push -f把远端的提交记录也给覆盖了。我那部分的代码就不翼而飞了。我想恢复我哪份提交记录及代码。下面是模拟的场景及操作。

85af4b685ce68c94e9ba992efd7cad490ee0d982 commitid 将我的代码提交到了临时分支。

同事,从远端把代码拉入本地后进行了reset,并重新提交了他的功能。

这样可以发现85af4b685ce68c94e9ba992efd7cad490ee0d982 这个提交记录没了,我的代码内容也没了。怎么和恢复呢?通过git reflog

git reflog

:::info
用于查看本地仓库中 HEAD 和分支引用的历史变动记录。它可以帮助你找回误删的提交、恢复丢失的分支,或者查看你最近对仓库做了哪些操作。

:::

拿到我提交功能的哪个commitid

git reset --hard <commitid>来对代码进行恢复我提交的功能

然后再通过拉取临时分支最新的代码到本地也就是同事修改的功能,如果有冲突则先解决,没有冲突哪就直接通过git push -force来把我的提交功能+同事的功能推到远程的临时分支。

这里的关键在于找到丢失的commitid

如果觉得在当前操作有风险的化可以先通过 git branch <new_branch> <commitid> 或者 git checkout -b <new_branch> <commitid>根据当时的commitid再创建一个临时分支以保存之前的代码。

注意

  • git reflog 只是在本地仓库保存,换一台机器,或者从远程新拉取的都不会之前git reflog
  • git reflog 默认保留 90 天,但是如果你执行了 git gc(垃圾回收),旧的 reflog 可能被清理。
http://www.dtcms.com/a/520007.html

相关文章:

  • 自己做的网站怎么删除建设网站 无法显示图片
  • 黄冈网站ppt网站
  • AGV机器人
  • 面向对象——设计模式(创建型)
  • 05_逻辑回归
  • Dify从入门到精通 第25天 在 Dify 中构建智能天气查询机器人
  • 【设计模式】代理模式(Proxy)
  • 怎么建手机网站wordpress和公众号
  • ADS ERROR:invalid class id(0x71c)问题记录
  • 模板号专注于网站企业网站建设的类型
  • golang学习笔记:标准库slices
  • golang学习笔记:标准库os
  • Python机器学习---5.决策树
  • 恶劣天气目标检测IA-YOLO
  • Google Now in Android(NIA)
  • Flink中的Lookup join和Temporal join 的语法是一样的吗?
  • 网站建设和网站维护上海工商网上办事大厅电话
  • ROS2(补充)Docker容器 + vscode开发
  • 7sch C++ <B> weak_ptr circular reference 1/99
  • Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
  • 苏州建设网站制作wordpress做教育网站
  • 代理记账网站模板如何自己开网址
  • 【Linux基础知识系列:第一百五十三篇】现代网络管理:NetworkManager与nmcli
  • D028 vue+django知识图谱可视化系统|AI 相关
  • 秒杀系统设计:打造高并发、高可用架构的实战指南
  • 当无符号与有符号整数相遇:C++中的隐式类型转换陷阱
  • Maya Python入门:创建球体polySphere、创建工具架、编辑工具架、查看命令的长名称
  • 邯郸市做网站的公司广州手机网站建设报价
  • 数据结构3:复杂度
  • 记录一下c中数据元素 值传递和地址传递