过去几周我一直在研究Android源代码。
在平台/构建存储库中,我检查了android-4.0.4_r2.1标记。这成了我的“ics”分支。现在,当对android-4.1.1_r1标记进行合并或重新定位时,我在一个我从未编辑过的文件中出现合并冲突。
这些是有问题的回购(和标签):
https://android.googlesource.com/platform/build/+/android-4.0.4_r2.1
https://android.googlesource.com/platform/build/+/android-4.1.1_r1
这是从第一个标签分叉的分支,我试图将后一个标签合并到:
https://github.com/slimdroid/platform_build/commits/ics
我完全不知道造成这种情况的原因。我不是一个git的初学者,但是我不知道如果没有冲突这个标签的话我怎么也不能合并。应该有一个共同的基础。
有关信息,我的冲突位于具体构建BUILD_ID的行的core / build_id.mk中。
答案 0 :(得分:2)
我将在这里复制Jean-Baptiste的回答,一个为AOSP为Google工作的人:
你没有做错任何事。
您所看到的是Google内部开发的神器 过程
在某些时候,ICS脱离了主要的合并流程 谷歌,我们正在准备第一版的果冻豆。那里 然而,仍然有一点ICS活动,在git上 级别没有合并到Jelly Bean中。这就是你所看到的 这里:最新版本的ICS有一些变化 不是在果冻豆,并试图改变最新的ICS 果冻豆使这些脱颖而出。
检查“repo forall platform / build -c git log android-4.1.1_r1..android-4.0.4_r2.1“ - 那将发现提交 这令你感到惊讶。
JBQ
答案 1 :(得分:1)
我没有使用git,所以我在这里可能完全错了。但我理解你的假设是第一个标签指向的提交是另一个标签的祖先。只有在这种情况下,您才能保证它们之间不会发生合并冲突。
您可以通过执行git merge-base first-tag second-tag
来测试此假设。