可能非常愚蠢的问题, - 但我一直在.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
这些基本上是一样的吗?
答案 0 :(得分:24)
与.git/info/exclude
和.gitignore
相同的答案。
.gitmodules
文件可以包含在存储库中并与所有人共享(也就是说,它可以像任何常规文件一样添加和提交),而.git
中的任何内容(如.git/config
})是私有的(你不能将它添加到存储库中)。
答案 1 :(得分:10)
git submodule sync
将使用.gitmodules文件中的详细信息更新您的配置文件,因此后者应被视为“主” - 它是在@ Artefact2所述的repos之间传递的。
当子模块URL更改为上游并且您需要时,这非常有用 相应地更新您的本地存储库。