是否可以在GitHub上撤消git push --force?

时间:2015-04-21 22:23:50

标签: git github

我做了一个git push --force认为它只会推动当前分支,但它会完成所有分支。真正的损害只发生在我的同事的几个分支上,我已经很长时间没有这样做了,通过这样做(由--force启用),我完全重置了遥控器上的所有提交。自从我上次拉扯以来已经取得了成就。

没有让我的同事要求他们将他们最新的本地分支推到GitHub以撤消我所做的损害,我有什么办法可以解除它吗?不幸的是,我所做的相当于git reset --hard,这意味着我已经完成了所有的提交。有没有办法可以撤消它?

1 个答案:

答案 0 :(得分:3)

没有。如果你没有旧的提交,那些远程分支指向你的本地存储库,那么你运气不好。 GitHub不会给你这种能力。

你必须要求你的同事再次强行推动他们的分支恢复以前的状态。

如果简单git push更新了所有分支,那么您可能需要检查push.default configuration。我建议simpleupstream以避免错误。

这有希望告诉你在将来避免强行推进任何东西;)这很危险,现在你已经体验了原因。如果您想要更高的安全性,可以在将来使用git push --force-with-lease。这样,如果您的远程分支与实际远程状态不匹配,Git将不会强制推送任何内容。所以,如果你有一段时间没有抓住,你就不能强行推进。它不会阻止你犯下所有错误,但可能会有一些错误。在这种情况下,它将允许您恢复原始状态(因为它基本上要求您在存储库中具有远程状态,因此您可以返回)。