【问题标题】:Git rebase - delete a few commits that have been pushed to a remote repositoryGit rebase - 删除一些已推送到远程存储库的提交
【发布时间】:2012-12-19 01:10:05
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: git git-rebase git-remote


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-31
        • 2014-01-25
        • 2022-07-03
        • 2010-09-20
        • 2015-11-05
        • 2020-07-16
        相关资源
        最近更新 更多