如何从远程仓库中删除特定的提交

时间:2018-12-07 23:26:30

标签: git

我有一个远程仓库,总共有7个提交(我们称它们为A-G,其中G是最近的提交)。提交C和E实际上并不需要进行全新的提交,我想在将提交G保持为HEAD的同时将它们从远程提交历史记录中删除。我该怎么办?

1 个答案:

答案 0 :(得分:0)

git documentation对此表示以下看法:


也可以使用rebase删除一系列提交。如果我们有以下情况:

E---F---G---H---I---J  topicA

然后输入命令

git rebase --onto topicA~5 topicA~3 topicA

将导致删除提交F和G:

E---H'---I'---J'  topicA

如果F和G以某种方式存在缺陷,或者不应该成为topicA的一部分,则这很有用。请注意,-onto的参数和参数可以是任何有效的commit-ish。


这首先仅适用于本地存储库。因此,在将此修改提交历史记录推送到您的远程时,您需要具有足够的特权。有关更多详细信息,请参见force push。我可以根据自己的经验告诉您,这可能是MS TFS中的问题。