【问题标题】:How to remove an unpushed git commit while keeping other good commits after it?如何删除未推送的 git 提交,同时保留其他好的提交?
【发布时间】:2020-09-05 23:24:12
【问题描述】:

刚刚发现提交到了错误的分支,但没有推送到原点。同一个分支在它被推送之后有很多提交(由另一个开发人员)。

我如何将一个未推送的提交带到另一个分支(或完全摆脱它)?我知道我可以将它挑选到其他地方,但是在不删除之后的所有更改的情况下删除它的最佳方法是什么?

使用 Gitkraken,但无论如何都能完成工作。

【问题讨论】:

    标签: git version-control gitkraken


    【解决方案1】:

    首先,将其樱桃挑选到正确的分支。

    git checkout the-proper-branch
    git cherry-pick the-commit-id
    

    然后回到错误的分支,并从有问题的提交开始使用交互式 rebase 将其删除。

    git checkout the-wronged-branch
    git rebase -i the-commit-id~
    

    这将弹出一个编辑器,其中包含每个提交和说明的行。删除有问题的提交的行,保存,退出,分支的历史将被重写,没有有问题的提交。

    请参阅 Pro Git 中的 Rewriting History 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2021-04-20
      • 2015-04-12
      • 2013-12-17
      • 2012-04-28
      • 2018-07-20
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多