如何撤消尚未被推送的提交?

时间:2014-07-11 19:30:00

标签: git github version-control

我做了两次提交而没有推它们。已经有多个其他提交被推送到我的分支机构。我还没有完成那些提交。我想要破坏我的两个提交,这些提交尚未推送,然后只是获得其他人推送的其他提交。有人可以帮我这个吗?

我想要逐一扭转这两个提交。但我想保留其他变化。这有用吗?

1 个答案:

答案 0 :(得分:8)

如果你有两个提交你没有被推,而你根本不想要它们,那么你应该重置为想要开始然后拉动的提交。

所以,我假设你有以下情况。

$ git log --oneline --graph
* fde0ba4 Commit 2 (don't want)
* d7be6f3 Commit 1 (don't want)
* 7a70e45 Before my new commits (start here!)
* db58591 Even earlier
...

等等。你不想要前两个提交,但你想要第三个提交。第一步是重置回你想要的地方。

git reset --hard 7a70e45

请注意,这是一种破坏性操作 - 您将丢失这些提交以及这些提交的内容,因此请谨慎操作!如果您不确定--hard是否合适,请参阅the git reset documentation

重置后,您应该可以毫无问题地拉动。

git pull