【问题标题】:How do I undo commits that haven't been pushed yet?如何撤消尚未推送的提交?
【发布时间】:2014-07-11 19:30:00
【问题描述】:

我做了两次提交而没有推送它们。有多个其他提交被推送到我的分支。我还没有撤消这些提交。我想销毁我的两个尚未推送的提交,然后只获取其他已被其他人推送的多个其他提交。有人可以帮我解决这个问题吗?

我想一一撤销这两个提交。但我想保留我的其他更改。这行得通吗?

【问题讨论】:

  • 您还希望保留哪些其他更改?他们是否提交了更改?
  • 我没有任何更改。我想保留其他人推送的更改,这是在我提交我的东西之后发生的(没有推送)

标签: git github version-control


【解决方案1】:

如果您有两个未推送的提交,并且您根本不想要它们,那么与其反转,您应该重置为要开始的提交然后拉取。

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

$ 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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-08-22
  • 2011-01-24
  • 2013-05-25
相关资源
最近更新 更多