所以我有几个子域列表的文件夹。每个文件夹都包含相同的脚本,用于动态猜测主机并加载多个配置。
所以这个列表正在增长,cd到每个文件夹git pull正变得越来越无聊。
我的客户端托管服务有限,我无法向主机添加ssh密钥以使其为“无密码”,因此我通过HTTPS进行提取。
我不是bash专家,但基本循环是:
for dir in /tmp/*/
do
#passwordless pulls
done
现在抓住了,一些文件夹需要拉动开发,其他文件夹拉动主分支。
答案 0 :(得分:3)
while read repo remote branch rest; do
( cd $repo
git pull $remote $branch
# do whatever with $rest
) 2>&1 | sed "s#^#$repo: #" &
done <<EOD
/path/to/repo origin branch1
/path/to/another github master
EOD
或者您可以将这些内容放在一个文件</path/to/file
中,而不是在<<EOD
之后将其内联。
这将同时触发所有拉动,如果你有很多它们或许它最好用&
替换最后的;
(或者等效地删除它)。
答案 1 :(得分:1)
DEVLIST="list of hosts that pull develop"
MASTERLIST="list of hosts that pull master"
for D in ${DEVLIST}
do
cd /tmp/${D}
git clone https://my.repo.edu/git/repo.git -b develop --single-branch
done
for M in ${MASTERLIST}
do
cd /tmp/${M}
git clone https://my.repo.edu/git/repo.git -b master --single-branch
done