最近我认识了git子模块。它们似乎是具有自己的git结构和分支的自给自足的项目。
当我切换主项目的分支时,这是否也会切换子模块的分支? git如何处理这种情况?
答案 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))
此外,子模块的分支对封闭存储库不感兴趣,因为引用总是添加到提交而不是分支。因此,子模块中的分支只会反映子模块的分支策略,而不需要与封闭存储库的分支策略相匹配。