【问题标题】:Moving branch onto rewritten commit将分支移动到重写提交
【发布时间】:2017-06-27 12:05:13
【问题描述】:

我的 git 历史基本上是这样的

master  | 1 - 2 - 3 - 5 - 6
                  \
feature |           - 4  

然后我对3 进行了编辑,通过交互地变基2,现在我的历史看起来像这样

master  | 1 - 2 - 7 - 8 - 9
              \ 
feature |       - 3 - 4

现在 73,但经过修改后,8596


有没有办法可以更改feature 分支,以便删除3,并从7 分支出4

master  | 1 - 2 - 7 - 8 - 9
                  \
feature |           - 4

【问题讨论】:

  • Cherrypick 它在 7 的顶部。

标签: git git-rewrite-history


【解决方案1】:

只需 rebase 功能分支并删除提交:

git rebase -i --onto 7 master feature
# drop the commit 3 and save
# you may have conflicts when applying commit 4

【讨论】:

    【解决方案2】:

    嗯,有点。您可以将4 重新设置为7,这可能就是您的意思,但是4 将不再是4,就像79 不是35,和6 了。

    对于提供的提交图,最简单的方法是

    git rebase --onto 7 feature^ feature
    

    7 替换为合适的表达式,例如提交7 的SHA ID,或给定图中的master~2

    如果这只是一个示例,并且如果要保留的提交数量未知,那么您可以使用master 作为上游而不是feature^ 进行交互式变基,然后将提交标记为@987654336 @ 是 dropped 而不是 picked。

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 2019-02-16
      • 2011-05-06
      • 2012-09-22
      • 2011-04-12
      • 1970-01-01
      • 2020-07-28
      • 2012-02-15
      • 2017-06-07
      相关资源
      最近更新 更多