现象一句话: “把 HEAD 落在历史提交上 → 改完顺手
git commit → 切分支 → 刚才的 commit ‘消失’”。
根本原因: 你提交时 HEAD 是游离(detached)状态,没有分支指针指向它;切走后 Git 再也找不到那条 commit,于是“好像没了”。
```bash git reflog # 找到刚才那一步的 HASH
```
复制对应的 HASH(如
a1b2c3d)。
``
bash git branch rescue a1b2c3d # 把 rescue 指向该 commit git switch rescue # 切过去,历史+修改都在 ``
``
bash git switch 目标分支 # 先回到你想合并的分支 git merge a1b2c3d # 把那次 commit 合进来 ``
想改旧版本 → 先建分支再改:
``
bash git switch -b 新分支名 <历史提交> ``
这样 HEAD 立即被分支“拴住”,后续 commit 自然留在分支上。
任何“被切走”“被 reset”的 commit 90 天内都能通过
reflog 找回,真正“删除”只有
git prune + 过期无引用。
“游离 HEAD 的 commit 没有分支指针 = 孤儿” → 改历史前先
git switch -b 新分支 → 万一切丢,
git reflog +
git branch 新分支 <HASH> 秒找回。
AI 对大前端项目的冲击,【大前端++】来抵御 【混合开发】进阶到【大前端++】 【大前端++】几大特征 【大前端++】前端、大前端、大前端++的区别有哪些?
Cannot fit requested classes in a single dex file (# methods: 93047 > 65536) 【Android】开发者模式启用
API开发工具postman、国内xxapi和SmartApi的性能对比
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048520/viewspace-3104250/ ,如需转载,请注明出处,否则将追究法律责任。