假设我的回购索引根目录位于/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