故障排查 Pro Git · 7.6 / 7.10

命令说明
git reflog查看 HEAD 移动记录 —— 误 reset / 误 rebase 的后悔药
git reset --hard HEAD@{2}回到 reflog 里第 2 条记录时的状态
git branch rescue <散列>为找回的提交建分支,防止再丢
git bisect start二分定位引入 Bug 的提交(配合 bad / good)
git bisect reset结束二分,回到原分支
git fsck --lost-found查找悬空对象里的丢失提交
重点:只要提交过,git reflog 里就有记录(默认保留 90 天),几乎不存在"彻底丢了"的提交。
bash · 二分定位 Bug
git bisect start
git bisect bad              # 当前版本有问题
git bisect good v1.0        # v1.0 没问题 → Git 自动切到中间提交
# 测试当前提交,重复 bad / good,几步内锁定元凶
git bisect reset