Git子模块父目录上的新分支

时间:2013-12-16 11:25:54

标签: git git-submodules

如果我有一个包含许多子模块的项目,并且从父目录切换到新分支,它是否会在我的新分支中包含这些子模块?他们将如何受到影响?

1 个答案:

答案 0 :(得分:1)

子模块是记录为in the index special entry 160000 的SHA1条目。

当你更改分支时,你的索引将反映那些新分支中记录的相同子模块的SHA1。
git submodule update --init --recursive将更新所述子模块。

这意味着您可以使用不同分支引用的相同子模块的不同版本。

Remmeber:

  • 无论您在 parent repo中选择了哪个分支,子模块始终处于分离的HEAD模式(除非您进入子模块,并在那里签出分支)
  • 您需要以某种方式配置子模块(请参阅“git submodule tracking latest”),以使其遵循自己的上游分支(您可以convert an existing submodule to that mode)。
    并且您需要从父级仓库中创建submodule update --remote,以便从配置为跟随分支的子模块中触发提取。