基于指定的提交对合并Git分支作为公共基础

是否可以根据指定的提交对将
Git中的分支合并为公共基础?

场景:

两个独立的Git存储库,“我们的”和“他们的”.

‘他们’是在已知的时间点使用来自’我们’的工作副本(仅限文件)创建的. ‘他们’中的初始提交是添加’我们’文件的快照.

我们现在想将’他们’合并到’我们的’中:

git remote add theirs <their repository path>
git pull theirs <their branch> --allow-unrelated-histories

git merge将寻找一个基于合并的共同祖先.但是,“我们的”和“他们的”之间没有共同的承诺.

因为我们可以在“我们的”中找到工作副本与’他们’中的初始提交相匹配的提交,我认为Git应该能够明智地开始合并,但是我们需要指示Git处理这两个特定的作为共同基础.

最佳答案

‘Theirs’ was created using the working copy (files only) from ‘ours’ at a known point in time. The initial commit in ‘theirs’ is adding a snapshot of ‘our’ files.

也许,在您的情况下,最好的选择是将伪替换的替换添加到相应的“我们的”提交中:

git replace --edit <THEIRS_INIT>

添加“parent< OURS_COMMIT>”行到标题,然后保存

合并完成后,您可以删除替换.

点赞