【发布时间】:2023-01-12 03:22:35
【问题描述】:
我有以下情况:
* a278b6b (HEAD -> feature1) Change i to j
| * c9550d0 (feature3) Print only odds
|/
| * befb5e9 (feature2) 2*z in baz loop
|/
* aa36658 Print only evens
现在,我想做的是将 feature1、feature2 和 feature3 分支合并到一个新分支中,以便这个新提交包含来自 3 个分支的所有信息。通常你可以做一个章鱼合并并得到我正在寻找的东西,但在这种情况下,三个分支之间存在合并冲突需要手动解决。因此,在一次合并一个分支以解决所有合并冲突之后,我剩下:
* 6679d6c (HEAD -> DI) merge feature3
|\
| * c9550d0 (feature3) Print only odds
* | 5b03abb merge feature2
|\ \
| * | befb5e9 (feature2) 2*z in baz loop
| |/
* / a278b6b (feature1) Change i to j
|/
* aa36658 Print only evens
其中 DI 是所有三个 feature 分支将合并到的分支。
问题是现在我在这里有两个合并提交:5b03abb 和6679d6c。我希望只有一个合并提交(为了清洁和维护),但合并冲突意味着我不能直接进行章鱼合并。有没有办法以某种方式将两个合并提交压缩到同一个提交中,就像您对标准提交所做的那样,或者我应该使用的一些其他合并策略以获得与 3 个父项的单个合并提交?
【问题讨论】:
-
“合并冲突意味着我不能直接进行章鱼合并”错误;合并冲突不会影响合并结果的拓扑结构。
-
我也不相信章鱼合并是您真正想要的,但那是另一回事了。
-
“一次合并一个分支之后”啊。有问题。
-
@matt octopus merge strat 将拒绝任何需要解决冲突的合并,因此这种情况下的合并冲突意味着 OP 不能直接进行章鱼合并。