写点什么

Git 检出到 HEAD 再修改提交 commit 会消失解决方案

作者:lichong951
  • 2025-12-03
    北京
  • 本文字数:813 字

    阅读完需:约 3 分钟

Git 检出到HEAD 再修改提交commit 会消失解决方案

现象一句话: “把 HEAD 落在历史提交上 → 改完顺手 git commit → 切分支 → 刚才的 commit ‘消失’”。根本原因: 你提交时 HEAD 是游离(detached)状态,没有分支指针指向它;切走后 Git 再也找不到那条 commit,于是“好像没了”。


找回与保留的两步法先找回“丢失”的 commit


输出示例HEAD@{1}: commit: fix: xxx
复制代码


复制对应的 HASH(如 a1b2c3d)。让分支重新指向它(任选一种)A. 直接新建分支bash git branch rescue a1b2c3d # 把 rescue 指向该 commit git switch rescue # 切过去,历史+修改都在 B. 合并到当前分支bash git switch 目标分支 # 先回到你想合并的分支 git merge a1b2c3d # 把那次 commit 合进来


以后避免再“丢”commit 不要在游离 HEAD 上长期工作想改旧版本 → 先建分支再改:bash git switch -b 新分支名 <历史提交> 这样 HEAD 立即被分支“拴住”,后续 commit 自然留在分支上。养成用 reflog 的习惯任何“被切走”“被 reset”的 commit 90 天内都能通过 reflog 找回,真正“删除”只有 git prune + 过期无引用。


一句话记住“游离 HEAD 的 commit 没有分支指针 = 孤儿” → 改历史前先 git switch -b 新分支 → 万一切丢,git reflog + git branch 新分支 <HASH> 秒找回。更多阅读困住我们一直在经济底层的到底是什么?大前端++AI 对大前端项目的冲击,【大前端++】来抵御 【混合开发】进阶到【大前端++】 【大前端++】几大特征 【大前端++】前端、大前端、大前端++的区别有哪些?Android 推荐阅读 Cannot fit requested classes in a single dex file (# methods: 93047 > 65536) 【Android】开发者模式启用开发工具链推荐 API 开发工具 postman、国内 xxapi 和 SmartApi 的性能对比心法杂谈【心力建设】《毛选》里的心法【心力建设】3:如何在组织集体或团队里得到认可健康杂谈【论健康】怎么才算健康(健康的本质) 【论健康】健康的不可能三角

用户头像

lichong951

关注

人生三定|SmartApi|大前端++ 2018-12-28 加入

开创前端晋升路线:【大前端++】技术路线; SmartApi 开发工具软件 著有《修心力》(正在出版中)、《健康的本质》(正在写作中)。。。其他杂谈文章等等;

评论

发布
暂无评论
Git 检出到HEAD 再修改提交commit 会消失解决方案_lichong951_InfoQ写作社区