?
This document uses PHP Chinese website manual Release
名稱
gitmodules - 定義子模塊屬性
$GIT_WORK_DIR/.gitmodules
.gitmodules
文件位于 Git 工作樹(shù)的頂層目錄中,是一個(gè)文本文件,其語(yǔ)法與 git-config [1] 的要求相匹配。
文件包含每個(gè)子模塊的一個(gè)子部分,并且子部分值是子模塊的名稱。名稱被設(shè)置為子模塊已被添加的路徑,除非它是用--name
選項(xiàng)自定義的git submodule add
。每個(gè)子模塊部分還包含以下必需的鍵:
submodule.<name>.path
定義相對(duì)于 Git 工作樹(shù)的頂級(jí)目錄的路徑,其中子模塊預(yù)計(jì)將簽出。路徑名稱不能以/
。所有子模塊路徑在 .gitmodules 文件中必須是唯一的。
submodule.<name>.url
定義可從中克隆子模塊存儲(chǔ)庫(kù)的URL。這可能是一個(gè)準(zhǔn)備好傳遞給 git-clone [1] 或者(如果它以./或../開(kāi)頭)相對(duì)于超級(jí)項(xiàng)目的源存儲(chǔ)庫(kù)的位置的絕對(duì) URL。
另外,還有一些可選的鍵:
submodule.<name>.update
定義指定子模塊的默認(rèn)更新過(guò)程,即通過(guò)超級(jí)項(xiàng)目中的 “git submodule update” 命令更新子模塊的方式。這僅用于git submodule init
初始化相同名稱的配置變量。這里允許的值是checkout
,rebase
,merge
或none
。有關(guān)update
它們的含義,請(qǐng)參閱 git-submodule [1] 中的命令說(shuō)明。請(qǐng)注意,!command
出于安全原因,表單在此處被故意忽略。
submodule.<name>.branch
用于跟蹤上游子模塊中更新的遠(yuǎn)程分支名稱。如果該選項(xiàng)未指定,則默認(rèn)為master
。特殊值.
用于指示子模塊中分支的名稱應(yīng)與當(dāng)前存儲(chǔ)庫(kù)中當(dāng)前分支的名稱相同。有關(guān)--remote
詳細(xì)信息,請(qǐng)參閱
git-submodule [1] 中的文檔。
submodule.<name>.fetchRecurseSubmodules
選項(xiàng)可用于控制此子模塊的遞歸提取。如果此選項(xiàng)也存在于超級(jí)項(xiàng)目的 .git / config 子模塊條目中,那么該設(shè)置將覆蓋. gitmodules 中的設(shè)置。通過(guò)在 “git fetch” 和 “git pull” 中使用 “--no-recurse-submodules” 選項(xiàng),可以在命令行上覆蓋這兩個(gè)設(shè)置。
submodule.<name>.ignore
定義在什么情況下,“git status” 和 diff 系列顯示已修改的子模塊。支持以下值:
all
子模塊永遠(yuǎn)不會(huì)被視為已修改(但仍會(huì)顯示在狀態(tài)的輸出中,并在已上載時(shí)進(jìn)行提交)。
dirty
對(duì)子模塊工作樹(shù)的所有更改都將被忽略,只會(huì)考慮子模塊的 HEAD 與其在超級(jí)項(xiàng)目中記錄的狀態(tài)之間的差異。
untracked
子模塊中只有未跟蹤的文件將被忽略。承諾的差異和修改被跟蹤的文件將顯示出來(lái)。
none
沒(méi)有對(duì)子模塊的修改被忽略,所有提交的差異以及對(duì)跟蹤和未跟蹤文件的修改都會(huì)顯示出來(lái)。這是默認(rèn)選項(xiàng)。
If this option is also present in the submodules entry in .git/configof the superproject, the setting there will override the one found in.gitmodules.Both settings can be overridden on the command line by using the"--ignore-submodule" option. The 'git submodule' commands are not affected by this setting.
submodule.<name>.shallow
設(shè)置為 true 時(shí),此子模塊的克隆將作為淺層克隆(歷史深度為1)執(zhí)行,除非用戶明確要求使用非淺層克隆。
考慮下面的 .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
這定義了兩個(gè)子模塊,libfoo
和libbar
。這些預(yù)計(jì)的路徑要被檢出的include/foo
和include/bar
,并為兩個(gè)子模塊被指定一個(gè)URL可以用于克隆子模塊。