0

我编写了一个限时功能,该功能已合并到 master 并交付生产。现在时间到了,我想从代码库中删除包含该功能的提交。

通常我会做一个git rebase -i并删除提交。

但是,这些提交已经被推送到远程存储库,所以当我在本地 rebase 并尝试推送分支时,我会抱怨我的分支的尖端是如何落后的,并且可以快速转发。

有没有办法从变基生成“新提交”,以撤消我不想要的提交?我并不真正关心拥有“干净”的提交历史,任何撤销这些提交的方法都会很棒。

4

2 回答 2

1

您必须将git push --force您的分支转移到任何远程,因为默认情况下push拒绝重写历史记录。

于 2012-12-19T01:12:41.500 回答
0

如果您只是想摆脱功能(而不是功能的历史)并且它都包含在一些特定的提交中(不影响其他功能),那么git revert可能是您的答案。

这并不总是一个很好用的选项(例如,提交可能包含您不想删除的其他功能),或者您可能有一些令人信服的理由想要删除任何功能的痕迹,但这是一个方便的命令意识到。

于 2012-12-19T08:34:19.693 回答