更新多个 Git 个存储库 - 改进的输出

Update Multiple Git Repositories - Improved Output

我在网上找到了这个命令,它允许我进入父目录,它将遍历每个目录并更新每个目录中的 git 存储库。我也可以这样做来获取状态等。我想知道是否有一种方法可以清理输出并使其更易于用户阅读。

ls | xargs -I{} git -C {} pull

这很好用,但只是给了我回应。我希望它显示存储库的名称,然后显示响应等。有没有办法强制它轻松地执行此操作?希望以某种方式使用别名?

这是你想要的吗?

for dir in * ; do if [ \! -L ${dir} -a -d ${dir}/.git ] ; then (cd ${dir} ; echo ":::: ${dir} ::::"; git pull) ; fi ; done

它遍历当前目录中的每个项目,如果该项目是 git 存储库的顶部,它将打印目录名称并执行 git pull。您可以在 git pull.

之后添加要在每个存储库中执行的任何其他命令

编辑:

您可以通过将其作为 shell 函数添加到 ~./bash_aliases 来为其添加别名:

git-pull-all () {
  #command here
}

或者,如果出于某种原因你想将它添加为 git 别名而不是 bash 别名,你可以在创建它时在命令名称前加上 ! :

git config --global alias.pull-all '!COMMAND_HERE'