如何撤销还未推送的提交?

5
我做了两个提交却没有推送它们。我的分支已经有多个其他提交被推送了,我还没有拉取这些提交。我想要撤销那两个未被推送的提交,然后只获取由其他人推送的多个提交。有人能帮我吗?
我想反转这两个提交,一个接一个地进行。但我想保留我的其他更改。这样会起作用吗?

您希望保留哪些其他更改?它们是否已经提交了更改? - Eran
我不想要我的更改,我想保留其他人推送的更改,这些更改是在我提交我的内容(但没有推送)之后发生的。 - SirRupertIII
1
回到之前的 Git 提交 的副本。 - user456814
1个回答

10
如果你有两个未推送的提交,而且你完全不想要它们,那么你应该重置到你想要从哪个提交开始并拉取,而不是撤销它们。
所以,我假设你有以下情况。
$ 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,请参阅git reset文档。重置后,您应该可以轻松进行拉取操作。
git pull

知道有一种方法可以做到这一点。唯一能改进你的答案的是提供一个链接到git reset --hard命令文档的页面。 - Bobulous

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接