force push 覆盖远端分支后,先找回正确 commit。
如果有人本地还保留旧分支,通常可以恢复。
先通知团队暂停向相关分支 push。
然后在本地检查:
git reflog
git log --oneline --decorate -20
也可以让同事在本地找:
git reflog
git log --oneline --decorate -20
确认 good sha 后,先建备份分支:
git branch backup-good-main <good-sha>
检查内容:
git show --stat <good-sha>
git diff <bad-sha>..<good-sha>
git push origin <good-sha>:main
如果主分支受保护,需要管理员处理。