我在没有推送的情况下进行了两次提交。已经有多个其他提交推送到我的分支。我还没有取消那些 promise 。我想销毁我的两个未被推送的提交,然后只获取其他多个已被其他人推送的提交。有人可以帮我解决这个问题吗?
我想一个一个地覆盖这两个提交。但我想保留我的其他更改。这行得通吗?
最佳答案
如果您有两个尚未推送的提交,并且您根本不需要它们,那么您应该重置为想要开始然后 pull 的提交,而不是反转。
那么,我假设你有以下情况。
$ 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
请注意,这是一个破坏性操作——您将丢失这些提交以及这些提交的内容,因此请谨慎操作!参见 the git reset
documentation如果您不确定 --hard
是否合适。
重置后,你应该可以毫无问题地 pull 。
git pull
关于git - 如何撤消尚未推送的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705168/