Git 合并会导致与我未使用的文件发生合并冲突';不改变

Git 合并会导致与我未使用的文件发生合并冲突';不改变,git,open-source,git-merge,sapui5,git-fork,Git,Open Source,Git Merge,Sapui5,Git Fork,我已经使用了一段时间的fork,并且希望合并来自另一个(更近期的)发布分支的最新更改本质上,我想“升级”我的叉子。 我的分叉点是指向可由rel-1.28release分支访问的提交 我的“fork”是从发布分支开始的,而不是从master开始的,因为我担心使用master会不稳定,并且有重叠多个发布的提交 我的升级目标是1.34.6,它由指向 我需要运行的最终命令是: git checkout aa08b45 # my original fork-point git checkou

我已经使用了一段时间的fork,并且希望合并来自另一个(更近期的)发布分支的最新更改本质上,我想“升级”我的叉子。

我的分叉点是指向可由
rel-1.28
release分支访问的提交

我的“fork”是从发布分支开始的,而不是从
master
开始的,因为我担心使用
master
会不稳定,并且有重叠多个发布的提交

我的升级目标是
1.34.6
,它由指向

我需要运行的最终命令是:

git checkout aa08b45        # my original fork-point
git checkout -b myForkPoint # local branch
git merge cb4d1be           # merge in 1.34.6 code
但这会导致许多我没有修改的文件发生合并冲突。(我猜是因为我试图合并到一个我的
头部无法访问的ref中)

使用
merge base
并手动比较发布分支和
master
(例如and)之间的提交,OpenUI5的发布分支似乎由
cherry pick
填充,从
master
执行提交。发布分支不会重新合并到
master
中,它们在更新时完成

git merge-base --is-ancestor aa08b45 origin/master; echo $?; # prints 1
git merge-base --is-ancestor cb4d1be origin/master; echo $?; # prints 1
那么,也许这个分支模型不利于关闭公共发布分支

不管怎样,有没有一种干净的方法来“升级”我的fork?

这里的答案是通过将两个发行版分支合并在一起并让更高版本(1.34.6)方赢得所有冲突(使用合并策略)来创建我们自己的合并基础

然后,将该合并基础合并到我们自己的分支中

通过这种方式,每个发布分支的内容都可以从我们的分叉点访问,因此第二次合并的所有冲突将只来自我们引入的更改

以下是步骤:

# first create the merge-base
git branch merge-1.34.6 1.34.6
git checkout merge-1.34.6
git merge rel-1.28 -s ours 1.34.6

# next merge the merge-base branch into us
git checkout myForkPoint
git merge merge-1.34.6
...fix conflicts, stage and commit...