是否有强大的方法来执行递归深度优先git submodule foreach
命令?我使用foreach --recursive
命令来完成这项工作,除了它是宽度优先。这是因为如果我有以下结构的问题:git submodule foreach - 首先递归提交子模块的可靠方法?
- 一个
- 乙
- Ç
而且我有承诺在所有三个,一个foreach --recursive add -A && git commit ...
将达到,B,C,如果我想让supermodule捕获当时B的提交,这是有问题的。
我从2008年发现了this discussion,但它看起来没有任何建议的功能在我拥有的当前版本的Git(1.7.9.5)中。
我写了一个小bash函数来做到这一点(原谅简写命名):
function git-sfed() { git submodule foreach "git submodule foreach '$*' && $*"; }
并用以下奇特的命令测试它似乎工作:
git-sfed 'python -c "import sys; print sys.argv" $path'
做这个命令似乎健壮,还是有其他常见的现有方法?
注意:有些命令现在知道子模块:例如'git grep -e“栏”--recurse-submodules“可用于Git 2.12:http://stackoverflow.com/a/41788645/6309 – VonC 2017-01-22 08:00:56