递归Git推/拉?

Dav*_*son 22 git recursion push pull

我有一个包含其他git存储库的git存储库.是否存在以递归方式推送和/或拉取元存储库而不是子存储库的命令?

vgu*_*rra 11

每当我想要更新我的llvm/clang存储库时,我发现自己处于相同的情况,并且通过一些bash帮助,我可以像这样'git pull'每个人:

$> for dir in $(find . -name ".git"); do cd ${dir%/*}; git pull ; cd -; done

这将'git pull'在您当前目录下找到的所有git repos,如果它们是裸存储库,可能无法工作.


小智 9

不完全git pull,但接近:

git fetch --recurse-submodules
Run Code Online (Sandbox Code Playgroud)

来自Git文档:

--recurse-submodules[=yes|on-demand|no]

此选项控制是否以及在何种条件下应该提取已填充的子模块的新提交.它可以用作布尔选项,在设置为no时完全禁用递归,或者在设置为yes时无条件地递归到所有填充的子模块,这是使用此选项时没有任何值的默认值.当超级项目检索到更新子模块对尚未在本地子模块克隆中的提交的引用的提交时,按需使用仅递归到填充的子模块.


mna*_*gel 8

如果你在谈论子模块,请参阅纸杯蛋糕的答案.

如果你在谈论一些包含git repos的文件夹层次结构,你可以checkout clustergit,我编写的工具:https://github.com/mnagel/clustergit