上游更改后修复分支

时间:2019-05-16 20:48:53

标签: git

我正在从feature-b分支的分支feature-a上工作。 feature-a的提交被压缩并合并,然后git push -f到远程,所以我不确定如何保存我的feature-b

历史看起来像这样:

A - B - C (feature-a) 
     \
      D (feature-b)

现在看起来像这样:

A' (feature-a `after squash`)
 \
  ?
   \
    D (feature-b)

D的变化并不大,但是鉴于这种情况已经发生,我对如何调和这种情况更感兴趣。

我知道在提交历史记录时应避免git push -f和挤压。如果我已经分支了自己的功能分支,是否可以清除提交?

2 个答案:

答案 0 :(得分:1)

这是我的方法:

git rebase --onto origin/feature-a old-feature-a-tip feature-b

您要告诉git的是重新建立属于功能-b的修订版放弃 old 功能-a相关的所有修订版(属于旧功能...。例如,您已经在旧功能A上建立了本地分支,而该分支已经进行了某些更改,而这些更改未包含在功能B中吗?没关系,gt会丢弃历史记录中的任何内容的旧功能-a,因此它可能是功能-a的最新修订版,也属于功能-b的当前历史),并将它们放在新功能-a的顶部上。

答案 1 :(得分:-1)

我会尝试:

B = [4,5,0,1,6,7,2,8,9,3,10,11]

如果没有冲突,则应以$ git fetch $ git checkout feature-b $ git rebase feature-a 提交消失,而?提交作为D的直接子代结束