前言
- 如果有很多的git 仓库地址,一个个git clone 比较的繁琐,这时可以使用shell 脚本来做这件事情
- 首先需要把所有的git 仓库的url(地址),放在一个指定的文件内,执行shell脚本,读取文件,获取所有的git clone 的地址,依次clone
功能简介
- 从文件获取git 仓库的列表,文件:
git_urls.cfg ,实例内容如下
git@gitee.com:zhangsz0516/crc16_calc.git
git@gitee.com:zhangsz0516/lpms.git
git@gitee.com:zhangsz0516/pm_tools.git
- 【备注】使用时,git 仓库地址改为自己的仓库地址
- 依次 git clone 所有的仓库,Linux shell 脚本
cat 命令,可以获取文件的内存,并且默认自动以【空白符】分隔,所以git 仓库列表使用【回车】,一行一个git 仓库地址即可
git clone all 脚本
#! /bin/bash
function git_clone_all() {
git_cfg="git_urls.cfg"
git_url_list=`cat $git_cfg`
for url_path in $git_url_list
do
echo "git url : $url_path"
echo "git clone $url_path"
git clone $url_path --recurse-submodules
echo ">>>>>>>>>>>>>>>>>>>>"
done
}
echo "--- git clone all start ---"
git_clone_all $PWD
echo "--- git clone all end ---"
echo "---------------------------"
运行效果
- 在
git_urls.cfg 填写 git clone 的仓库列表 - shell中执行:
./git_clone_all.sh - 当git 仓库【不存在】时:
- 当 git 仓库【存在】时:
- 可以配合前面的 git pull all shell 脚本,实现 git clone 与 git pull 功能
小结
- 灵活使用shell 脚本,让重复的工作交给计算机自动执行,提高效率
- git clone all 在clone 较多工程时,有点用处
- 配合 git pull all的脚本,可以让git 仓库更新自动化
|