仅克隆.gitmodules中的某些模块,并且不使用分支配置

时间:2018-10-16 18:57:43

标签: git

我的.gitmodules文件如下:

[submodule "server"]
    path = server
    url = https://github.com/companyName/app-name-server
    branch = master
[submodule "client"]
    path = client
    url = https://github.com/companyName/app-name-client
    branch = master
[submodule "deploy-instructions"]
    path = deploy-instructions
    url = https://github.com/companyName/app-name-deploy-instructions
    branch = master
[submodule "shared"]
    path = shared
    url = https://github.com/companyName/app-name-shared
    branch = master

当我克隆仓库并运行git submodule update --init --recursive时,serverclient子模块会被拉出,而deploy-instructionshared不会。此外,serverclient都不在master分支上。

这是怎么回事?

1 个答案:

答案 0 :(得分:1)

  

服务器和客户端也不在master分支上。

子模块更新会将这些子模块检出到其gitlink中记录在父存储库索引中的SHA1中,而与分支无关。
如果希望他们拉主分支并更新到其HEAD,则需要:

git submodule update --remote
  

不要部署和共享指令。

检查git ls-files --stage | grep 160000的结果:如果没有看到这两个文件夹,则意味着它们的gitlink已被相同名称的实际(非子模块)文件夹覆盖。