设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
修补
调试
电子邮件
外部系统
服务器管理
指南
管理
管道命令
- 2.42.1 → 2.47.0 无更改
- 2.42.0 08/21/23
- 2.32.1 → 2.41.2 无更改
- 2.32.0 06/06/21
- 2.30.2 → 2.31.8 无更改
- 2.30.1 02/08/21
- 2.28.1 → 2.30.0 无更改
- 2.28.0 07/27/20
- 2.25.1 → 2.27.1 无更改
- 2.25.0 01/13/20
- 2.24.2 → 2.24.4 无更改
- 2.24.1 12/06/19
- 2.24.0 11/04/19
- 2.23.2 → 2.23.4 无更改
- 2.23.1 12/06/19
- 2.23.0 08/16/19
- 2.22.3 → 2.22.5 无更改
- 2.22.2 12/06/19
- 2.22.1 无更改
- 2.22.0 06/07/19
- 2.21.2 → 2.21.4 无更改
- 2.21.1 12/06/19
- 2.21.0 02/24/19
- 2.20.3 → 2.20.5 无更改
- 2.20.2 12/06/19
- 2.20.1 无更改
- 2.20.0 12/09/18
- 2.19.4 → 2.19.6 无更改
- 2.19.3 12/06/19
- 2.19.2 11/21/18
- 2.19.1 无更改
- 2.19.0 09/10/18
- 2.18.3 → 2.18.5 无更改
- 2.18.2 12/06/19
- 2.18.1 无更改
- 2.18.0 06/21/18
- 2.17.4 → 2.17.6 无更改
- 2.17.3 12/06/19
- 2.17.1 → 2.17.2 无更改
- 2.17.0 04/02/18
- 2.16.6 无更改
- 2.15.4 12/06/19
- 2.14.6 无更改
- 2.13.7 05/22/18
- 2.11.4 → 2.12.5 无更改
- 2.10.5 09/22/17
- 2.9.5 07/30/17
- 2.4.12 → 2.8.6 无更改
- 2.3.10 09/28/15
- 2.1.4 → 2.2.3 无更改
- 2.0.5 12/17/14
描述
.gitmodules
文件位于 Git 工作树的顶层目录中,是一个文本文件,其语法与 git-config[1] 的要求相匹配。
该文件每个子模块包含一个子节,子节值是子模块的名称。该名称设置为添加子模块的路径,除非使用 git submodule add 的 --name
选项进行了自定义。每个子模块部分还包含以下必需键
- submodule.<name>.path
-
定义相对于 Git 工作树顶层目录的路径,期望在该路径中检出子模块。路径名称不能以
/
结尾。所有子模块路径在.gitmodules
文件中必须是唯一的。 - submodule.<name>.url
-
定义一个 URL,可以从中克隆子模块仓库。这可以是一个可以直接传递给 git-clone[1] 的绝对 URL,或者(如果以
./
或../
开头)是一个相对于超级项目的源仓库的位置。
此外,还有许多可选键
- submodule.<name>.update
-
定义命名子模块的默认更新过程,即超级项目中
git submodule update
命令如何更新子模块。这仅供git submodule init
用于初始化同名配置变量。这里允许的值是 checkout、rebase、merge 或 none,但不允许 !command(出于安全原因)。有关更多详细信息,请参阅 git-submodule[1] 中 update 命令的描述。 - submodule.<name>.branch
-
一个远程分支名称,用于跟踪上游子模块中的更新。如果没有指定该选项,它将默认为远程
HEAD
。特殊值.
用于表示子模块中的分支名称应与当前仓库中的当前分支名称相同。有关详细信息,请参阅 git-submodule[1] 中的--remote
文档。 - submodule.<name>.fetchRecurseSubmodules
-
此选项可用于控制递归获取此子模块。如果此选项也存在于超级项目
.git/config
中的子模块条目中,则那里的设置将覆盖.gitmodules
中找到的设置。两种设置都可以在命令行中通过使用--[no-]recurse-submodules
选项来覆盖git fetch
和git pull
。 - submodule.<name>.ignore
-
定义在什么情况下
git status
和差异系列将子模块显示为已修改。支持以下值如果此选项也存在于超级项目
.git/config
中的子模块条目中,则那里的设置将覆盖.gitmodules
中找到的设置。两种设置都可以在命令行中通过使用
--ignore-submodules
选项来覆盖。git submodule
命令不受此设置的影响。 - submodule.<name>.shallow
-
设置为 true 时,克隆此子模块将作为浅层克隆执行(历史深度为 1),除非用户明确要求非浅层克隆。
注意
Git 不允许工作树中的 .gitmodules
文件是符号链接,并将拒绝检出这样的树条目。这使行为在从索引或树访问文件时与从文件系统访问文件时保持一致,并帮助 Git 可靠地执行文件的安全检查。
示例
考虑以下 .gitmodules
文件
[submodule "libfoo"] path = include/foo url = git://foo.com/git/lib.git [submodule "libbar"] path = include/bar url = git://bar.com/git/lib.git
这定义了两个子模块,libfoo
和 libbar
。它们预期在 include/foo
和 include/bar
路径中检出,并且为这两个子模块都指定了可以用于克隆子模块的 URL。
GIT
是 git[1] 套件的一部分