关于git:更新文件夹中的所有repos?

Updating all repos in a folder?

我有一个文件夹"repos",其中包含我感兴趣的repos。这些是从BitBucket克隆的,但我想GitHub也可能是源代码。

1
2
3
4
Repos
    - music-app
    - elephant-site
    - node-demo

有没有一个git命令,我可以使用哪个步骤浏览repos中的每个文件夹,查看服务器上是否有新提交,以及下载新内容?如果本地有新的提交,那么上传这些。


试试这个:

1
2
cd repos
find . -maxdepth 1 -type d -exec sh -c '(cd {} && git pull)' ';'


对于Windows,这应该通过命令提示为您完成:

1
2
3
4
cd c:
epos
for /d %a in (*.*) do cd c:
epos\%a && git pull

回到Github客户机后,您应该看到更新。


Gitfox是在所有子报告上执行命令的工具

NPM安装Gitfox-G

G拉力


对于Windows,我在.cmd文件中使用下面的。它可以很容易地扩展到做更多或其他事情:

1
2
3
4
5
for /d %%i in (*) do (
  pushd"%%i"
  git pull
  popd
)

我所拥有的是一个脚本,它的功能如下:

1
2
3
4
for d in *
cd $d
git pull
cd ..

(是的,它有一些额外的钟声和哨声,因为我有一些hg回购,还有一些是我在Git从SVN上游管理的。)


要维护多个回购,可以使用git子模块。

使用git submodule add添加repo作为子模块,使用git submodule foreach git pull更新repo。

这个方法就像你有一个超级项目,其中有几个Git项目。