Recursive Git push/pull?

I have a git repository that contains other git repositories. Are there commands that recursively push and/or pull for not only the meta-repository but the sub-repositories?


if you are talking about submodules, see cupcakes answer.

if you are talking about some folder hierarchy containing git repos, you can checkout clustergit , a tool i programmed: https://github.com/mnagel/clustergit


I find myself in the same situation whenever I want to update my llvm/clang repositories and with a bit of bash help I can 'git pull' each of them like this:

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

This will 'git pull' all git repos found under your current directory, and probably wont work if they are bare repositories.


Not quite git pull , but close:

git fetch --recurse-submodules

From the Git docs:

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

This option controls if and under what conditions new commits of populated submodules should be fetched too. It can be used as a boolean option to completely disable recursion when set to no or to unconditionally recurse into all populated submodules when set to yes, which is the default when this option is used without any value. Use on-demand to only recurse into a populated submodule when the superproject retrieves a commit that updates the submodule's reference to a commit that isn't already in the local submodule clone.

链接地址: http://www.djcxy.com/p/92378.html

上一篇: git submodule commit / push / pull

下一篇: 递归Git推/拉?