git push -f 的后悔药

说真的,有些指令先存起来放,必要时是能救命的 ,大家可以先把这篇存起来留个印象,真的遇到时可以当作锦囊掏出来用。废话不多说,开始教学!

使用场景

不管什么原因,总之你用了 git push -f 覆盖了远程的分支,你想要撤销刚才的操作,将分支恢复刚才误操作前的状态。

处理步骤

1. git reflog show remotes/ur_upstream/ur_branch

请把 ur_upstream 改成你自己设定的 remote origin 名称,然后把 ur_branch 换成你的 branch 名字,执行完毕后你会看到

2. git reset --hard ur_commit_hash

在前一个步骤你看到一堆 commit hash,这时候选择一个你要的 commit hash ,把指令中的 ur_commit_hash 替换你要的 commit hash 例如:

reset -- hard 9983b19d

3. git push ur_upstream ur_branch -f

在前一个步骤 reset 完本地的代码后,在本机检查一下是不是你要的版本,如果一切没问题,再直接用回退回来的版本推到远端就大功告成啦!

后记

如果你有用 rebase 整理 commit 的习惯,工作又时常多线开发,需要多个 branch 切换,有时候难免不小心 rebase 整理完,使用 push -f 推错 branch ,如果覆盖小部分代码还可以,但如果覆盖了大量的代码真的会欲哭无泪,分享这个抢救小技巧,希望大家都能在紧要关头派上用场哦!

相关推荐
2401_895521343 分钟前
SpringBoot Maven快速上手
spring boot·后端·maven
Можно7 分钟前
uni.request 和 axios 的区别?前端请求库全面对比
前端·uni-app
disgare18 分钟前
关于 spring 工程中添加 traceID 实践
java·后端·spring
ictI CABL23 分钟前
Spring Boot与MyBatis
spring boot·后端·mybatis
M ? A35 分钟前
解决 VuReact 中 ESLint 规则冲突的完整指南
前端·react.js·前端框架
Jave21081 小时前
实现全局自定义loading指令
前端·vue.js
奔跑的呱呱牛1 小时前
CSS Grid 布局参数详解(超细化版)+ 中文注释 Demo
前端·css·grid
木斯佳2 小时前
前端八股文面经大全:影刀AI前端一面(2026-04-01)·面经深度解析
前端·人工智能·沙箱·tool·ai面经
小江的记录本2 小时前
【Linux】《Linux常用命令汇总表》
linux·运维·服务器·前端·windows·后端·macos
无人机9013 小时前
Delphi 网络编程实战:TIdTCPClient 与 TIdTCPServer 类深度解析
java·开发语言·前端