设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.42.1 → 2.49.0 无更改
-
2.42.0
2023-08-21
- 2.32.1 → 2.41.3 无更改
-
2.32.0
2021-06-06
- 2.30.2 → 2.31.8 无更改
-
2.30.1
2021-02-08
- 2.28.1 → 2.30.0 无更改
-
2.28.0
2020-07-27
- 2.25.1 → 2.27.1 无更改
-
2.25.0
2020-01-13
- 2.24.2 → 2.24.4 无更改
-
2.24.1
2019-12-06
-
2.24.0
2019-11-04
- 2.23.2 → 2.23.4 无更改
-
2.23.1
2019-12-06
-
2.23.0
2019-08-16
- 2.22.3 → 2.22.5 无更改
-
2.22.2
2019-12-06
- 2.22.1 无更改
-
2.22.0
2019-06-07
- 2.21.2 → 2.21.4 无更改
-
2.21.1
2019-12-06
-
2.21.0
2019-02-24
- 2.20.3 → 2.20.5 无更改
-
2.20.2
2019-12-06
- 2.20.1 无更改
-
2.20.0
2018-12-09
- 2.19.4 → 2.19.6 无更改
-
2.19.3
2019-12-06
-
2.19.2
2018-11-21
- 2.19.1 无更改
-
2.19.0
2018-09-10
- 2.18.3 → 2.18.5 无更改
-
2.18.2
2019-12-06
- 2.18.1 无更改
-
2.18.0
2018-06-21
- 2.17.4 → 2.17.6 无更改
-
2.17.3
2019-12-06
- 2.17.1 → 2.17.2 无更改
-
2.17.0
2018-04-02
- 2.16.6 无更改
-
2.15.4
2019-12-06
- 2.14.6 无更改
-
2.13.7
2018-05-22
- 2.11.4 → 2.12.5 无更改
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.4.12 → 2.8.6 无更改
-
2.3.10
2015-09-28
- 2.1.4 → 2.2.3 无更改
-
2.0.5
2014-12-17
描述
.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
中找到的设置。 可以通过使用git fetch
和git pull
的--[no-]recurse-submodules
选项在命令行上覆盖这两个设置。 - submodule.<name>.ignore
-
定义在什么情况下
git status
和 diff 系列会将子模块显示为已修改。 支持以下值如果此选项也存在于父项目的
.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] 套件的一部分