GIT:如何删除工作树中间的推送

时间:2011-10-12 15:13:32

标签: git

嗨,为了ilustration目的,这是服务器上的树。

(...)
Change to E from user TTT
Change to D from user LLL
Change to C from user me
Change to B from user QQQ
Change to A from user TTT
(...)

我不小心推了C,我怎样才能将它从主存储库中删除而不影响我的同事们之后推送的所有工作?

如果可能的话,仍然保留它作为我自己的本地提交。

1 个答案:

答案 0 :(得分:2)

您想要的命令是git revert。它创建了一个提交来取消另一个提交:

git revert <SHA1 C>

然后,您可以将其推送到主存储库,并且将恢复提交所做的更改,同时仍保留提交本身(以及后续历史记录):

- A - B - C - D - E - ... - C' - ...

要继续基于它自己工作,你可以恢复还原,或者挑选原始提交 - 希望在本地分支上,这样你就不会意外地推送它!