設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
- 2.42.1 → 2.50.1 無變化
-
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
描述
位於 Git 工作樹頂級目錄中的 .gitmodules
檔案是一個文字檔案,其語法符合 git-config[1] 的要求。
該檔案包含每個子模組的一個子節,子節的值是子模組的名稱。除非使用 git submodule add 命令的 --name
選項進行了自定義,否則該名稱將設定為新增子模組的路徑。每個子模組節還包含以下必需鍵:
- submodule.<name>.path
-
定義子模組預期檢出位置的路徑,該路徑相對於 Git 工作樹的頂級目錄。路徑名不得以
/
結尾。所有子模組路徑在.gitmodules
檔案中必須是唯一的。 - submodule.<name>.url
-
定義可用於克隆子模組倉庫的 URL。這可以是準備傳遞給 git-clone[1] 的絕對 URL,或者(如果以
./
或../
開頭)相對於超專案(superproject)源倉庫的位置。
此外,還有一些可選鍵:
- submodule.<name>.update
-
定義指定子模組的預設更新過程,即超專案(superproject)中的
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
-
此選項可用於控制此子模組的遞迴獲取。如果此選項也存在於超專案(superproject)的
.git/config
中子模組的條目中,則該設定將覆蓋.gitmodules
中找到的設定。這兩個設定都可以透過在命令列中使用git
fetch
和git
pull
的--
[no-
]recurse-submodules
選項來覆蓋。 - submodule.<name>.ignore
-
定義在何種情況下
git
status
和 diff 系列命令會將子模組顯示為已修改。支援以下值:如果此選項也存在於超專案(superproject)的
.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。