循环遍历所有子模块列表时避免使用子模块

劳尔

我们有大量的子模块,我们希望使用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直接超级项目顶级的绝对路径。请注意,为了避免与$PATHWindows 上的冲突,该$path变量现在是不推荐使用的$sm_path变量同义词...

(我在这里做了一些小的格式指令更改,但文本应该或多或少匹配。您的 Git 版本可能使用旧$path名称而不是$sm_path,这取决于您的 Git 的年龄。检查您的Git 文档以确保:git help submodule将打印以上,作为完整文档的一部分。)

由于您可以访问所有这些信息,请使用它选择最简单的检查您遇到的情况并跳过执行不适用的命令。不要盲目奔跑使用或类似。git fooif somecondition; then git foo; fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章