自己参考网上的一些教程手撸了一个小脚本,主要用于批量clone或者pull新提交的代码。
#!/bin/bash
# 用户名
username="username"
# 密码
password="password"
# 项目A的代码地址
projectA="http://******/projectA.git"
# 项目B的代码地址
projectB="http://******/projectB.git"
# 将项目的地址变成一个数组
projectArr=($projectA $projectB)
# 当前所在目录
current=$PWD
# 遍历数据取值
for i in ${projectArr[*]}
do
cd $current
# 字符串截取
# 从左往右扫描并截取最后一次出现'/'的右侧字符,即经过这次截取会变成'projectA.git'
dir=${i##*/}
# 从右往左扫描并截取第一次出现'.'的左侧字符,即经过这次截取会变成'projectA'
dir=${dir%%.*}
# echo $dir
# 判断项目的目录是否存在,不存在则克隆,存在则拉取
if [ ! -d $dir ];then
# echo $i
# 字符串替换,将地址添加上账号密码,即'http://'替换成'http://username:password@'
projectAddr=${i/http:\/\//http://$username:$password@}
echo '*********正在clone' $dir '项目...********'
git clone $projectAddr
echo '*********clone' $dir '项目成功!*********'
fi
echo -e "\n*****正在拉取" $dir "项目...****"
cd $dir
git pull
echo -e "*****拉取" $dir "项目完成!*****\n"
done
可以结合自己实际进行修改优化,个人能力有限,不对的地方欢迎指正,如果觉得不错的麻烦点个赞啦,蟹蟹~!