Git 如何找回丢失 commit
快速答案
先查看 reflog:
git reflog
找到目标提交后,建议先创建恢复分支:
git switch -c recover-work <commit>
如果确认要把当前分支回到该提交:
git reset --hard <commit>
推荐流程
- 先
git status,确认当前工作区是否干净。 - 用
git reflog找到 reset、rebase、checkout 前的位置。 - 用
git switch -c recover-work <commit>建分支,避免继续破坏现场。 - 确认内容正确后,再决定 merge、cherry-pick 或 reset。
常见坑
- 直接 reset 到 reflog 位置,覆盖当前工作区未保存改动。
- 以为 reflog 是永久记录;过期清理后可能无法恢复。
- 只看
git log,看不到已经不在当前分支历史上的提交。
相关内容
相关内容
- Git 如何修改 commit message Git 如何修改 commit message:最后一次提交用 git commit --amend,更早提交用 git rebase -i,已推送共享分支要谨...
- Git 如何修改 remote Git 如何修改 remote:用 git remote -v 查看当前地址,再用 git remote set-url origin 新地址修改远程仓库。
- Git 如何删除远程分支 Git 如何删除远程分支:用 git push origin --delete branch-name 删除远程分支,再用 git fetch --prune...
- Git 如何恢复删除文件 Git 如何恢复删除文件:未提交删除用 git restore,已提交删除先找到删除前提交,再从指定提交检出文件。
- Git 如何重命名分支 Git 如何重命名分支:本地用 git branch -m 改名,已推送分支还需要推送新分支、删除旧远程分支并设置 upstream。
- Git 冲突怎么解决 Git 冲突怎么解决:先用 git status 定位冲突文件,手动保留正确内容,git add 后继续 merge 或 rebase。