我正在从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
和挤压。如果我已经分支了自己的功能分支,是否可以清除提交?
答案 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
的直接子代结束