0

在一个不完整的feature分支上工作,我已经提交了一个Fixfor master

(master)    A-B-C
(feature)        \_D-E-Fix-G-H

我如何获得Fix提交到master,...

(master)    A-B-C------Fix'
(feature)        \_D-E-Fix-G-H

...但仍然能够合并/重新建立我的feature分支master

(master)    A-B-C-D-E-Fix-G-H

我想Fix'应该保持相同的 SHAFix以便不被看到完全不同的提交并顺利合并/重新调整(所以cherry-pick,我通常使用的,在这里没有帮助)。所以也许这是不可能的,但我很好奇是否有任何方法可以与另一个分支共享来自一个分支的一些临时修复,并且仍然能够稍后合并其余丢失的提交。

我的feature分支只是一个本地分支。我自然要避免改写历史。

4

1 回答 1

0

如果Fix提交是可挑选的,那么它独立于Dand E,所以你可以git rebase -i C重新排序你的历史以 put Fixbehind D

然后很容易将功能分支合并回master。

(master)    A-B-C--Fix'
(feature)        \_Fix-D-E-G-H

您提到您希望避免重写历史记录,但如果您可以选择单个修复提交,我认为重新排序您的功能分支以使其更容易合并应该是可以接受的。

于 2018-05-23T16:59:38.307 回答