我编写了一个时间限制功能,该功能已合并到主控并运送到生产中。现在时间到了,我想从代码库中删除包含该功能的提交。
通常我会做git rebase -i
并删除提交。
但是,这些提交已经被推送到远程存储库,所以当我在本地进行rebase并尝试推送分支时,我会抱怨我的分支的提示是如何落后的,并且可以快速转发。
有没有办法从rebase生成“新提交”,撤消我不想要的提交?我并不关心拥有“干净”的提交历史,任何退出这些提交的方法都会很棒。
答案 0 :(得分:1)
您必须git push --force
您的分支到任何遥控器,因为默认情况下,push
拒绝重写历史记录。
答案 1 :(得分:0)
如果您只想摆脱功能(但不是功能的历史记录)并且它包含在一些特定的提交中(不影响其他功能),那么git revert
可能是您的答案。
这并不总是一个很好用的选项(例如,提交可能包含您不想删除的其他功能),或者您可能有一些令人信服的理由希望删除任何功能跟踪,但它是一个方便的命令要注意。