GIT子子模块的奇怪行为

时间:2017-02-01 17:24:38

标签: git git-submodules

我有三个存储库:A,B和C.

在我的存储库A中,我创建了一个朝向B的子模块(A / library / B)。

在我的存储库B中,我创建了一个朝向C的子模块(A / library / B / library / C)。

我想在我的存储库C上创建一个新分支:

git clone --recursive C
cd C
git checkout -b branch-test
git touch test
git add test
git commit -m "test"
git push origin branch-test

现在我想在我的存储库B上创建一个分支,而在我的新分支上,朝向C的子模块遵循我之前创建的分支:

git clone --recursive B
cd B
git checkout -b branch-test
cd library/C
git checkout branch-test
cd ../../
git add library/C
git commit -m "Updating version of submodule C"
git push origin branch-test
直到那里,没有问题。当我在我的存储库A上执行相同操作时出现问题:

git clone --recursive A
cd A
git checkout -b branch-test
cd library/B
git checkout branch-test

现在,当我要去A / library / B并输入“git branch”时,我可以看到我在我的子模块B的分支“分支测试”中。但是当我要去A时/ library / B / library / C和我输入“git branch”,我可以看到我正在进行分离提交而不是分支“分支测试”。

你知道为什么吗?

此致 本

1 个答案:

答案 0 :(得分:0)

即使没有子模块层,分离头也很常见。

您是否应用了here找到的建议?