git clone --recursive - 没有分支的子模块

时间:2015-08-14 10:41:44

标签: git git-branch git-submodules git-clone

我有一个名为'production'的git模块,位于几个子模块中。当我使用以下命令时:git clone --recursive git@git_server:production它使用子模块克隆'production'模块。当我在其中一个子模块中cd并给出以下命令时:git branch -a我得到:

* (no branch)
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

.gitmodules个文件包含:

[submodule "blabla"]
url = git@git_server:production/blabla
path = blabla
branch = refs/heads/master
...........................................

问题是:为什么我克隆递归子模块在分支“(没有分支)”,如果我只克隆相应的子模块直接克隆在分支“master”上?有没有办法改变配置,当我克隆递归直接克隆分支“master”中的所有子模块?

1 个答案:

答案 0 :(得分:1)

  

为什么我克隆递归,子模块位于分支“(无分支)”

父程序直接检查 gitlink special entry in the index

记录的SHA1上的子模块

如果您要添加 gitsubmodule update --recursive --remote (在克隆之后),那么它将继续子模块,获取并更新分支。

See also the submodule.$name.update config