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

Sir*_*III 2 git version-control github

我做了两次提交而没有推它们.已经有多个其他提交被推送到我的分支机构.我还没有撤回这些提交.我想要销毁我没有被推送的两个提交,然后只获得其他人推送的其他多个提交.有人可以帮我弄这个吗?

我想一个接一个地反转这两个提交.但我想保留其他变化.这会有用吗?

tbe*_*lay 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
...
Run Code Online (Sandbox Code Playgroud)

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

git reset --hard 7a70e45
Run Code Online (Sandbox Code Playgroud)

请注意,这是一种破坏性操作 - 您将丢失这些提交以及这些提交的内容,因此请谨慎操作!请参阅git reset文件,如果你不知道,如果--hard是适当的.

重置后,您应该能够毫无问题地完成任务.

git pull
Run Code Online (Sandbox Code Playgroud)