假设我的回购索引根目录位于/project dir中。.gitmodules是否也应位于此目录中,或者我可以将其放入,例如/project/subdir

我之所以这样做,是因为我有多个贡献者,并且我希望每个人都负责自己的子模块集。

最佳答案

Debian Wheezy上的man gitsubmodule说:

...
SYNOPSIS
   $GIT_WORK_DIR/.gitmodules
...

根据 .gitmodules的默认位置,文件是git工作树的顶级目录。
因此,假设您具有这样的项目结构:
project/
|
|--subproject-1/
|  `--.gitmodules
|--subproject-2/
|  `--.gitmodules
|--.gitmodules

项目根目录中的 .gitmodules 将定义模块 subproject-1 subproject-2 。也可以使用 subproject-N/.gitmodules 来定义依赖于子项目的模块,但是这些设置只会在适当的子项目范围内起作用。

要更新您的项目依赖项,您应该使用命令:
git submodule update

但是,如果您还想更新子项目1 子项目2 的依赖关系,请使用:
git submoudle update --recursive

08-27 17:18