有没有一种强大的递归深度优先git submodule foreach
命令的方法?我正在使用foreach --recursive
命令,它可以完成工作,但它是广度优先的。这是一个问题,因为如果我有以下结构:
- A
- B
- C
并且我在所有三个中都有提交,foreach --recursive add -A && git commit ...
将会遍历 A、B、C,这会导致如果我想要在那个时候让超级模块捕捉 B 的提交就会出现问题。
我发现了这个讨论(英文链接),但看起来推荐的功能都不在我拥有的当前版本的 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 "bar" --recurse-submodules
可以在 Git 2.12 中使用:https://dev59.com/xGMk5IYBdhLWcg3w-Ceq#41788645 - VonC