推送后如何撤消重置?

How to undo a reset after push?

我想还原推送的提交,但由于缺乏知识,我做了

git reset --hard HEAD~1 
git push -f 

现在,在此之后,已经取消我重置的提交的人无法返回。 git pull 不接受他们 1 次提交。

我现在该如何解决这个问题?任何建议。

免责声明:在任何情况下,在做任何事情之前,请务必:

  • 与您的团队详细讨论,以便大家都同意一个计划

  • 每个人 saves/commits 在重置任何内容之前他们的本地更改,或者使用 git stash 就像 simbo1905 在他的 中暗示的那样,或者通过在分支上提交然后支持

    git branch backup-branch old-branch


简而言之,有 2 种方法,具体取决于您的项目的具体情况和您刚刚推送的更改的性质:

1) 要么每个人都选择 你的 版本

每个其他用户更新 his/her 本地分支

git fetch
git reset --hard <remoteName>/<branchName>

2) 或他们的版本将被保留

在这种情况下,具有此分支*旧引用的其他用户之一执行 git push -f <remoteName> <branchName> 将执行上述操作以同步和他们一起回来。

* (万一由于任何原因没人能做到这一点,您也可以从分支的 reflog 本地恢复 ref 并再次用力将其推送到远程,它通常更快从旧 ref 的人的回购中推送它)