force push 覆盖远端分支后,先找回正确 commit。
如果有人本地还保留旧分支,通常可以恢复。
先通知团队暂停向相关分支 push。
然后在本地检查:
git reflog
git log --oneline --decorate -20
也可以让同事在本地找:
git reflog
git log --oneline --decorate -20
确认 good sha 后,先建备份分支:
git branch backup-good-branch <good-sha>
检查内容:
git show --stat <good-sha>
git diff <bad-sha>..<good-sha>
<protected-branch> 是被覆盖的实际远端分支,例如 main、master 或 develop。先确认目标、远端权限、分支规则和协作者影响范围,得到相关 owner 授权后再更新远端:
git push origin <good-sha>:<protected-branch>
如果主分支受保护,需要管理员处理。