不小心执行了 git revert,如何恢复到被撤销前的状态

下面是AI的回答,但是我亲自试验过可以正常执行

别慌!你是不小心执行了 git revert(也就是生成了这个 "撤销提交"),想恢复到被撤销前的状态,分两种情况(核心是把 "撤销操作本身再撤销掉"),一步步来:

第一步:先确认现状(避免操作错)

先打开终端 / 命令行,进入你的代码文件夹,执行:

复制代码
git log --oneline

会看到类似这样的记录(最新的在最上面):

复制代码
abc1234 (HEAD) Revert "之前的提交说明"  # 这是你不小心生成的撤销提交
f405d46 之前的提交说明                  # 这是被撤销的那个原提交
xxxxxxx 更早的提交

记住最上面那个 "撤销提交" 的哈希(比如 abc1234),接下来二选一操作:


情况 1:还没把这个撤销提交推到远程(比如只在本地点错了)

最简单,直接 "回退" 到撤销前的版本:

复制代码
# 用 HEAD^ 表示"上一个版本",也就是撤销操作之前的状态
git reset --hard HEAD^

执行完这句,你的代码就回到被撤销前的样子了,那个不小心的撤销提交也会被删掉。

情况 2:已经把撤销提交推到远程(比如点错后还 git push 了)

不能用 reset(会改远程历史,影响其他人),而是再做一次 revert,把 "撤销操作" 本身撤销:

复制代码
# 把 abc1234 换成你刚才看到的"撤销提交"的哈希
git revert abc1234

执行后会弹出提交说明窗口(直接保存退出就行),然后推到远程:

复制代码
git push

这样远程代码也会恢复到被撤销前的状态,且保留完整的操作痕迹,不会出问题。


验证是否恢复成功

操作完再执行 git log --oneline,看代码里被撤销的内容(比如你之前改的代码、加的文件)是不是回来了,确认没问题就搞定了。

如果看不懂命令行,也可以用 Git 图形化工具(比如 SourceTree、VSCode 自带的 Git):

  1. 找到那个 "Revert" 开头的提交;
  2. 右键选择 "Revert Commit"(再撤销一次),确认后推送到远程就行。

核心逻辑:你不小心做了 "撤销 A",现在要么删掉 "撤销 A" 的记录(本地没推送时),要么再做 "撤销 B" 抵消 "撤销 A"(已推送时),最终回到 A 提交生效的状态。

相关推荐
ShineWinsu2 小时前
对于Git:基础操作的超详细保姆级解析
linux·c++·git·面试·备份·管理·版本控制器
沉迷...3 小时前
Git skip-worktree 使用笔记(本地忽略配置文件)
javascript·git
解道Jdon6 小时前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio
天天喝旺仔8 小时前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希
艾莉丝努力练剑8 小时前
【Git:综合复盘】Git 原理与使用
大数据·人工智能·git·elasticsearch·面试
ShineWinsu1 天前
对于Git:远程操作的超详细保姆级解析
linux·git·gitee·github·远程仓库·分布式版本控制系统·远程操作
梦帮科技1 天前
从 Guest 到 Platinum:Prompt 配额、API Key 与访问控制的安全闭环
javascript·git·架构·node.js·reactjs·html5·visual studio
zho_uzhou2 天前
Git入门概念
git
爱奥尼欧2 天前
【Git】远程分支删了本地还在、两个分支历史不相干?两招故障排解
开发语言·git
Java后端的Ai之路2 天前
Git冲突完整排查与实战:本地修改覆盖报错到成功推送全流程复盘
开发语言·人工智能·git·python·pop