我在网上找到了这个命令,它允许我在父目录中,它将遍历每个目录并更新每个目录中的git存储库。我也可以这样做以获得状态等。我想知道是否有办法清理输出并让它更具用户可读性。
ls | xargs -I{} git -C {} pull
这很好但只是给了我回复。我希望它显示存储库的名称,然后显示响应等。有没有办法强制它轻松地执行此操作?希望以某种方式使用别名?
答案 0 :(得分:2)
这样做你想要的吗?
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'