git - 在遍历所有子模块列表时避免子模块
问题描述
我们有相当数量的子模块,我们希望使用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
推荐阅读
- python - Python:如何从整数中获得两个月之间的差异?
- caching - WC:禁用延期交货时订单中的负库存
- python - 字符串的常量部分
- datasource - 如何实现数据表的自定义材质数据源?
- javascript - 将列表数据传递给javascript
- javascript - 单击自定义按钮组件时隐藏组件时很热
- php - $http() 不通过方法 'POST' 向 PHP 服务器发送数据
- laravel-5 - 为什么使用 PUT 方法提交表单我收到了 GET 请求?
- python - 在将大型数据集存储到数据库之前在 Python 中定义它们
- apache-spark - Spark解析CSV文件中未用引号括起来的反斜杠转义逗号