在我的家用机器上,我使用脚本gitpull.sh
同时将所有更改拉到给定目录下的 git 存储库中。
#!/usr/bin/bash
find $1 -name ".git" | sed -r 's|/[^/]+$||' | parallel git -C {} pull origin master
我的问题是parallel
我的工作计算机上没有安装它。是否可以在不使用的情况下更改我的脚本parallel
?
在我的家用机器上,我使用脚本gitpull.sh
同时将所有更改拉到给定目录下的 git 存储库中。
#!/usr/bin/bash
find $1 -name ".git" | sed -r 's|/[^/]+$||' | parallel git -C {} pull origin master
我的问题是parallel
我的工作计算机上没有安装它。是否可以在不使用的情况下更改我的脚本parallel
?
您可以将 xargs 与 -P 标志一起使用,而不是并行。就像是:
您可以使用此工具Git-Plus将所有更改同时拉到给定目录下的 git 存储库中。使用此命令
您可以轻松地安装和使用它。
您可以只使用 bash、readlink 和 find:
-maxdepth
您可以通过仔细使用 find 的选项使其运行得更快一些。例如,如果您知道所有.git
目录只能在当前目录的顶级子目录中找到,-maxdepth 3
将阻止它递归到任何较低的子目录。我使用
"$@"
的是find
命令而不是$1
您使用的未引用的命令,因此不仅目录参数是可选的,您还可以使用多个目录参数和/或将您可能需要的任何查找选项添加到命令行。如果
find
您的工作计算机上的版本不是-print0
,您可以将\n
其用作输入分隔符,但如果任何目录名称包含换行符(不常见但完全有效),脚本将中断。