是否有強大的方法來執行遞歸深度優先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