2011-08-01 64 views
10

我在工作站中拥有一个远程git存储库的签出副本。 我不小心在我的本地进行了更改,并推送到远程。 现在我想删除最后一次提交并返回到前一次提交,同样应该推送到远程。如何在git中恢复到以前的版本

我没关系,如果它是一个提交消息的新提交。怎么做?

回答

10

我建议不要使用-force替代历史记录。 任何已经完成修改的人都会有一个完全搞砸的历史来处理新东西的时候。

一个更安全的选择是简单地做

git revert HEAD~1 
git push origin master 

git revert将录制新提交的是取消所有的以前的一个

的影响
9

如果还没有人克隆了更新后的远程回购,您可以:

git reset --hard HEAD~ 
git push --force 

这将迫使本地和远程历史抛弃的最新承诺。
(首先检查了Git的获取没有新的提交已被推因为你的不正确提交)

如果一个新的历史,是不是一种选择,那么git revert更安全,并会导致一个新的提交取消前一个:然后您可以推送新的提交。