git子模块分支是否与主项目的分支一起切换?

时间:2016-10-24 13:03:30

标签: git git-branch git-submodules

最近我认识了git子模块。它们似乎是具有自己的git结构和分支的自给自足的项目。

当我切换主项目的分支时,这是否也会切换子模块的分支? git如何处理这种情况?

1 个答案:

答案 0 :(得分:3)

我最近遇到了a similar question。 (我将让您阅读此答案的内容,因为它为您提供了答案的背景)。

子模块只是对此仓库中的回购和提交的引用 当您切换分支时,引用可能会更改(如果您要切换到的分支使用不同的引用),但子代理的文件系统将保持不变。 因此,编写HEAD会产生一个结果,表明您的子模块状态与当前HEAD中的子模块状态不同。

要使子模块指向$ git submodule update 的正确提交,只需调用:

   dd <- data.table(date = c("2015-07-01 00:00:02", "2015-07-01 00:00:04", "2015-07-01 00:00:08"),
             status = c(0,1,0))

此外,子模块的分支对封闭存储库不感兴趣,因为引用总是添加到提交而不是分支。因此,子模块中的分支只会反映子模块的分支策略,而不需要与封闭存储库的分支策略相匹配。