讲师中心 微信公众号
AI工具推荐 视频效率加速

Git不小心撤销了提交怎么恢复

梦晨君_4516

梦晨君_4516

发布时间:2026-10-25 07:28:41

|

153人浏览过

|

来源于php中文网

原创

只要提交对象未被git gc清理,绝大多数本地误撤销可在5分钟内用reflog恢复;reflog记录HEAD每次移动的原始日志,是恢复的第一依据,目标提交通常位于HEAD@{1}等位置。

git不小心撤销了提交怎么恢复

只要提交对象还没被 Git 垃圾回收(git gc)清理掉,就能恢复。绝大多数本地误撤销,git reflog 五分钟内就能捞回来。

reflog 是你第一眼该看的东西

Git 每次移动 HEAD(比如 git reset、git checkout、git merge)都会在本地 reflog 记一笔,包括时间、操作前后的 commit hash 和简要说明。它不依赖分支,也不受远程影响,是恢复的“原始日志”。

  • 运行 git reflog,你会看到类似:
    abc1234 HEAD@{0}: reset: moving to HEAD~1
    def5678 HEAD@{1}: commit: add user profile page
  • 目标提交通常就在 HEAD@{1}、HEAD@{2} 这类位置上;注意看那行描述是否匹配你丢掉的提交
  • 如果记不清具体位置,用 git reflog --date=iso 加时间戳辅助判断,或直接 git log -p <code>def5678 看内容确认

用 reset 指回原提交(最常用)

找到目标 commit hash(比如 def5678)后,用 git reset 把当前分支指针挪回去。这里选哪种模式取决于你当前工作区状态:

git摸鱼周报自动化
git摸鱼周报自动化

生成周报:读取本机 Git 仓库最近一周的提交记录,按项目分类提炼总结,生成标准周报格式,通过微信推送并返回给用户。触发词:周报、weekly report、git总结、提交记录总结、工作周报。

下载
  • 如果只是想让分支回到那个提交,且工作区/暂存区没被破坏 → 用 git reset --hard def5678
  • 如果工作区还有未提交修改,怕被覆盖 → 改用 git reset --keep def5678(仅当目标提交是当前分支祖先时有效)
  • 如果只想改分支指针,保留暂存区和工作区 → git reset --mixed def5678(默认行为)

误删分支后提交“消失”,其实是引用没了

执行过 git branch -D feature/login 后发现提交找不到了?别慌。只要那个分支最后指向的 commit 还在 reflog 里,或者曾被其他分支、stash、tag 引用过,它就还在。

  • 先查 git reflog,找对应分支最后一次活动的记录,例如:
    ghi9012 refs/heads/feature/login@{0}: commit: implement login validation
  • 恢复分支只需: git branch feature/login ghi9012
  • 如果 reflog 已清空或找不到,可试 git fsck --lost-found 扫描悬空提交,再用 git show <hash> 逐个确认

已经 push 过的提交被撤销,不能硬重置

如果你执行了 git reset --hard 并 git push --force 覆盖了远程,而别人已经基于旧提交工作,这时强行拉回会破坏协作历史。必须换方式:

  • 优先用 git revert <commit-hash> 生成一个“反向提交”,安全抵消原改动
  • 如果已强制推送且团队允许,需同步通知所有人执行 git fetch && git reset --hard origin/main(但这是高风险操作,慎用)
  • 永远不要对共享分支(如 main、develop)做未沟通的 --force

真正难恢复的,是那些从未 git add 过的文件修改——它们从没进过 Git 对象库,reflog 和 fsck 都看不到。所以日常开发中,哪怕只改了一行,也建议 git add -N 或 git stash 先保底。Git 不会帮你记住没告诉它的东西。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

6579

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

1880

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

1114

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4277

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4081

2024.04.09

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

20

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

20

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.1万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn