推后回滚远程回购

时间:2013-08-04 07:35:12

标签: git git-push

我已经把我的回购弄得一团糟了。

我做了一些改变&把它们推到了回购品和现在我喜欢撤消它。 (我合并了一切都错了)

在我的本地计算机上,我使用以下命令完成了该操作:

git reset --hard 72a535b

这似乎已经成功了。然后我正确地实施了更改,提交了他们&试图推动。

当然那是因为错误而失败

  

否认非fast0forward refs / heads / master(你应该先拉)

我认为我不想这样做,因为然后我会失去我的变化并回到第一组破坏的mod。

我该如何解决这个可怕的混乱?

2 个答案:

答案 0 :(得分:7)

假设没有人撤消你的“坏”改变,强行推动:

git push -f

服务器拒绝正常推送,因为它会导致服务器端repo丢失更改(您的混乱)。在这种情况下,这似乎是你想要的,所以继续并强制它。请注意,强行推动通常是一件危险的事情,因为你可能会失去历史。

如果其他用户已经撤消了您的更改,它可能会变得混乱,因为他们必须在推送之前以有意义的方式解决冲突。因此,如果您在项目中有任何合作者,请务必检查他们是否已获得您的代码副本,如果他们这样做,请警告他们您将要做什么,并确保他们尽快提取正确的版本它可用。

答案 1 :(得分:1)

您最好,最安全的选择是

 git revert 
好吧,它创建和额外提交,你的错误提交终生。买什么护理。只要分支的顶部是干净的,为什么要隐藏过去的错误。