git bash shell 脚本 :从文件获取git仓库列表 git clone所有仓库

前言

  • 如果有很多的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`
        # echo $git_url_list
        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 仓库更新自动化