我有repo
包装器和大约十几个不同的git存储库。
我想要一个可以在以后申请/使用的补丁 以下列方式:
我想在所有已更改的子模块上执行此命令:
git checkout -b all_sub_branch
git commit -a all_submodules
git format-patch all_submodules aaa.patch
git apply aaa.patch
答案 0 :(得分:1)
普通香草git答案(使用子模块):
为每个子模块完成的这种过程可以通过以下方式启动:
git submodule foreach [--recursive] ...
用'...'表示包含所有命令的git别名。
foreach
在每个签出的子模块中计算任意shell命令 该命令可以访问变量
$name
,$path
,$sha1
和$toplevel
:
$name
是.gitmodules
中相关子模块部分的名称,$path
是相对于超级项目的子模块目录的名称,$sha1
是超级项目中记录的提交,$toplevel
是超级项目顶级的绝对路径。此命令会忽略超级项目中定义但未检出的任何子模块 除非给定
--quiet
,否则foreach
会在评估命令之前打印每个子模块的名称 如果给出--recursive
,则递归遍历子模块(即,给定的shell命令也在嵌套的子模块中进行计算)。
问题是android repo
wrapper command以自己独特的方式执行git子模块所做的事情
相当于git submodule foreach
可能是:repo forall
,例如:
repo forall -c 'git status'