首页 > 解决方案 > git submodule update --recursive 是否覆盖 fetchRecurseSubmodules?

问题描述

我有一个子模块,它是我不需要的子模块。例如:

mainProject
  - usefulSubmodule
    - notNeededSubmodule

所以在 中mainProject,我.gitmodules这样定义我的:

[submodule "usefulSubmodule"]
    path = lib/usefulSubmodule
    url = https://whatever
    fetchRecurseSubmodules = false

然后我git submodule update --init --recursive在更新后运行,似乎这忽略了fetchRecurseSubmodules(根据文档https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtfetchRecurseSubmodules我猜这可能是真的)

因此,我的问题是,如何在更新期间禁用此行为而不覆盖它?在尊重该标志的同时更新我的​​所有子模块的最佳方法是什么?

标签: gitgit-submodules

解决方案


on-demand如果该属性不存在,那么它是默认值吗?

是的,这就是git config fetch.recurseSubmodules指定:

当设置为on-demand(默认值)时,fetchpull当其超级项目检索到更新子模块引用的提交时才会递归到已填充的子模块中。

注意:如果您想在本地(仅针对一个命令)覆盖配置:

git -c fetch.recurseSubmodules=on-demand submodule update --init

但是在这种情况下,它是不需要的(这只是为了说明如何为一个git命令设置配置)


推荐阅读