我有repo包装器和十几个不同的git仓库在里面。
我希望有一个补丁,以后可以通过以下方式应用/使用:
我想在所有已更改的子模块上执行此命令:
git checkout -b all_sub_branch
git commit -a all_submodules
git format-patch all_submodules aaa.patch
git apply aaa.patch发布于 2013-01-30 16:01:52
简单的git答案(使用子模块):
为每个子模块完成的这类过程可以通过以下方式启动:
git submodule foreach [--recursive] ...使用'...‘指的是一个包含所有命令的git别名。
来自git submodule man page
foreach评估每个检出的子模块中的任意外壳命令。
该命令可以访问变量$name、$path、$sha1和$toplevel:
$name是.gitmodules中相关子模块部分的名称,$path是相对于超级项目的子模块目录的名称,$sha1是超级项目中记录的提交,$toplevel是超级项目顶层的绝对路径。此命令将忽略在超级项目中定义但未检出的所有子模块。
除非给定了--quiet,否则foreach会在计算命令之前打印每个子模块的名称。
如果给定了--recursive,则递归地遍历子模块(即,给定的外壳命令也在嵌套子模块中求值)。
问题是android repo wrapper command以自己独特的方式做了git子模块做的事情。
因此,git submodule foreach的等价物可能是:repo forall,例如:
repo forall -c 'git status'
https://stackoverflow.com/questions/14592583
复制相似问题