我们有大量的子模块,我们希望使用git submodule foreach git <command>
.
发生的情况是这些子模块中的 1 或 2 个不需要对它们使用这些命令,所以我想知道是否有办法避免循环这些先前指定的子模块。
...我想知道是否有办法避免循环这些先前指定的子模块。
不,那里没有。但git submodule foreach
运行任意 shell 命令,并导出一些变量,如文档中所述:
foreach [--recursive] <命令>
在每个检出的子模块中评估任意 shell 命令。该命令可以访问变量
$name
,$sm_path
,$displaypath
,$sha1
和$toplevel
:$name
是 中相关子模块部分的名称.gitmodules
,$sm_path
是直接超级项目中记录的子模块的路径,$displaypath
包含从当前工作目录到子模块根目录的相对路径,$sha1
是直接超级项目中记录的提交,并且$toplevel
是直接超级项目顶级的绝对路径。请注意,为了避免与$PATH
Windows 上的冲突,该$path
变量现在是不推荐使用的$sm_path
变量同义词。...
(我在这里做了一些小的格式指令更改,但文本应该或多或少匹配。您的 Git 版本可能使用旧$path
名称而不是$sm_path
,这取决于您的 Git 的年龄。检查您的Git 文档以确保:git help submodule
将打印以上,作为完整文档的一部分。)
由于您可以访问所有这些信息,请使用它。选择最简单的检查您遇到的情况并跳过执行不适用的命令。不要盲目奔跑;使用或类似。git foo
if somecondition; then git foo; fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句