.gitmodules和.git / config中指定子模块之间的区别?

时间:2012-05-04 17:33:20

标签: git

可能非常愚蠢的问题, - 但我一直在.gitmodules文件中指定子模块。最近让我感到震惊的是,也许有可能只是因为同样的原因使用.git / config,所以我不必在工作目录中保留无关的文件?

.git / config:

[submodule "path/to/repo"]
    url = git@github.com:username/repo.git

.gitmodules

[submodule "path/to/repo"]
    path = path/to/repo
    url = git@github.com:username/repo.git

这些基本上是一样的吗?

2 个答案:

答案 0 :(得分:24)

.git/info/exclude.gitignore相同的答案。

.gitmodules文件可以包含在存储库中并与所有人共享(也就是说,它可以像任何常规文件一样添加和提交),而.git中的任何内容(如.git/config })是私有的(你不能将它添加到存储库中)。

答案 1 :(得分:10)

git submodule sync将使用.gitmodules文件中的详细信息更新您的配置文件,因此后者应被视为“主” - 它是在@ Artefact2所述的repos之间传递的。

  

当子模块URL更改为上游并且您需要时,这非常有用   相应地更新您的本地存储库。