为所有子模块递归设置 Git 配置

set a Git config recursively for all submodules

我需要运行命令:

git config core.filemode false

问题是我有几个项目,每个项目至少有十个子模块。出于某种原因,所有子模块都将该值设置为 true,因此我必须 remove/update 手动配置。

有没有办法告诉 Git 为所有子模块设置一个配置值?

或者将它从子模块中删除,这样包含的 repo 的设置就不会被覆盖?

您可以为此使用 git submodule foreach 命令:https://www.kernel.org/pub/software/scm/git/docs/v1.6.1.3/git-submodule.html

您可以提供任意 shell 命令作为参数,在您的情况下是这样的:

git submodule foreach --recursive git config core.filemode false

这将在当前 Git 存储库的每个子模块中执行 git config core.filemode false