Git - 将命令(即 ls 文件)链接到子模块

Git - Chaining cmds (i.e. ls-files) to submodules

有没有办法将 cmd 链接到您的存储库中的子模块? 我正在寻找内置方法,因为我需要它是可移植的并且无需二次安装。

就我而言,我有一个基于 ls 文件(和日志)的工作流管道,需要能够查看符合特定条件的文件,即使它们位于子模块中。

git ls-files some/file/path/above/my/submodules/globed-file

只显示当前仓库中的文件并忽略子模块的文件。

2015 年 6 月:您可以尝试在每个子模块中执行您的命令,使用 git submodule foreach:

git submodule --quiet --recursive foreach "git ls-files yourFile"

其中一个子模块将 return 某些东西,如果该文件存在于其中。

请注意,对于 Git 2.11+(2016 年第 4 季度),您可以改用:

git ls-files --recurse-submodules

参见“finding a list of files (e.g. using git ls-files) including submodules”。