【发布时间】:2016-02-23 16:19:28
【问题描述】:
我一直在使用 SAP's OpenUI5 repository 的一个分支,并希望合并来自另一个(更新的)发布分支的最新更改。 本质上,我想“升级”我的 fork。
我的分叉点是aa08b45865b8db4457bc6c626754c58230811b43,它指向rel-1.28 发布分支可以访问的提交。
我从发布分支而不是 master 开始我的“fork”,因为我担心在 master 上工作会不稳定并且提交会与多个发布重叠。
我的升级目标是1.34.6,由cb4d1be36087ed7f1dfbde44884782774fceb51b指向。
我需要运行的最终命令是:
git checkout aa08b45 # my original fork-point
git checkout -b myForkPoint # local branch
git merge cb4d1be # merge in 1.34.6 code
但这会导致我没有更改的文件出现许多合并冲突。 (我猜是因为我试图合并一个我的HEAD 无法访问的引用)。
使用merge-base 并在发布分支和master 之间手动比较提交(例如63596f 和b23117),OpenUI5 的发布分支似乎由来自master 的cherry-picking 提交填充。发布分支不会合并回master,它们已完成更新。
git merge-base --is-ancestor aa08b45 origin/master; echo $?; # prints 1
git merge-base --is-ancestor cb4d1be origin/master; echo $?; # prints 1
那么,也许这种分支模型不利于处理公共发布分支?
无论如何,有没有一种干净的方式来“升级”我的 fork?
【问题讨论】:
标签: git open-source git-merge sapui5 git-fork