同时从多个git存储库获取

  • 本文关键字:存储 获取 git git fetch
  • 更新时间 :
  • 英文 :


我有几个git仓库,每个仓库都有几个名为public_<user>的远程。

我想同时从每个远程获取所有存储库。

我已经发现(myrepos),但这个脚本只适用于origin远程。

git remote update命令将对给定存储库的所有远程执行fetch操作:

$ git remote
larsks
origin
$ git remote update
Fetching origin
remote: Reusing existing pack: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From https://github.com/teythoon/afew
   7317eb0..50db012  master     -> origin/master
Fetching larsks
From github.com:larsks/afew

如果你想在一个git集合上自动运行存储库,你可以这样做:

$ find * -maxdepth 1 -name .git -execdir git remote update ;

查找包含.git目录的所有内容,然后在.git目录的父目录中运行git remote update

要查找所有存储库,您可以这样做:
$ find * -maxdepth 1 -name index -execdir git remote update ;

也就是说,查找index文件而不是.git目录。

如果您想要针对所有子模块,您可以使用git submodule foreach命令:

$ find * -maxdepth 1 -name .git -execdir 
  git submodule foreach git remote update ;

如果你想把这些都合并成一个命令:

$ find * -maxdepth 1 -name .git -execdir 
  sh -c 'git remote update; git submodule foreach git remote update' ;

我相信你正在寻找--all标志:

git fetch --all

根据您链接的脚本的快速浏览,该脚本似乎将接受此标志并将其传递给每个存储库的git。

git forward一次在任意数量的远程上获取、修剪和快速转发任意数量的跟踪分支。对于同时跟踪多个远程/分支的集成商来说,这是非常棒的。

相关内容

  • 没有找到相关文章

最新更新