拉取所有git仓库

作者: Jerry2015 | 来源:发表于2017-08-20 22:18 被阅读587次

随着代码越写越多。本地保存的git仓库也越来越多,有些是私有项目,有些是公开项目。其中也有很多是访问不多,本地做备份保存的仓库。说这么多废话,主要是遇到一个需要把本地代码运行git pull同步远端仓库代码。一个一个文件夹cd实在是太麻烦了。

#!/bin/bash
while getopts "Pp:" arg #选项后面的冒号表示该选项需要参数
do
    case $arg in
        P)
            export HTTP_PROXY=http://127.0.0.1:1234
            export HTTPS_PROXY=http://127.0.0.1:1234
            ;;
        p)
            # echo "a's arg:$OPTARG" #参数存在$OPTARG中
            export HTTP_PROXY=$OPTARG
            export HTTPS_PROXY=$OPTARG
            ;;
        ?)  #当有不认识的选项的时候arg为?
    echo -e '\033[31m参数列表:
-P  设置代理:HTTP_PROXY=http://127.0.0.1: 1234
    HTTPS_PROXY=http://127.0.0.1: 1234

-p  指定代理,比如:-p http://127.0.0.1: 1234
\033[0m'
            exit 1
        ;;
    esac
done
shift $((OPTIND-1))
args=( "$@" )
if [ ! -n "$1" ] ;then
    # 没有指定目录,设置为当前目录。
    args='.'
fi

for arg in "${args[@]}"
do
    if [ -n "$arg" ]; then
        if [ -d "$arg" ]; then
            path=$arg
        else
            echo -e "\033[31m'$arg'必须是目录,可以不加参数则默认处理当前目录\033[0m"
            exit 1
        fi
    else
        # path=$(dirname $0)
        path=$(pwd)
    fi
    cd "$path" || continue
    # 处理当前页面是否有git
    if [[ -d ./.git ]]
        then
            echo "pulling $(basename $path)"
            git pull
    fi
    # 其实理论上上面当前目录是git仓库了,这里是不需要再处理了。
    parent_dir=$(ls .)
    for dir in $parent_dir
    do
        if [[ -d $dir/.git ]]
        then
            echo "pulling $(basename $dir)"
            cd "$dir" || continue
            git pull
            cd ..
        fi
    done
done

相关文章

  • 拉取所有git仓库

    随着代码越写越多。本地保存的git仓库也越来越多,有些是私有项目,有些是公开项目。其中也有很多是访问不多,本地做备...

  • 【Git】基本操作

    一、拉取代码 1. 拉取指定分支代码 git clone -b [URL] 2. 拉取远程仓库代码(拉取远程仓库代...

  • Git 进阶

    一、进阶命令 1.git fetch 到远程仓库中拉取所有本地仓库中还没有的数据,但只是拉取,不自动进行分支合并,...

  • Git---fetch

    $ git fetch #拉取分支,从远程仓库--->本地仓库$ git fetch --prune #本地删除远...

  • Git

    git安装 创建git用户 新建一个项目仓库 仓库初始化 git客户端拉取 免密拉取 配置信息 配置使用者信息 查...

  • Jenkins基础篇16-Jenkins拉取Git仓库最新代码并

    前面已经完成“将Git仓库最新代码拉取到Jenkins工作空间,那么本篇文章主要针对“Jenkins拉取Git仓库...

  • GIT使用

    从一个新仓库拉取代码开始开发 拉取远程仓库代码从远程拉取源代码到本地 git clone <仓库地址>此操作会在当...

  • [git] git拉取远程仓库,同步远程分支,解决冲突

    [git] git拉取远程仓库,同步远程分支,解决冲突 1.本地仓库存在 本地仓库与远程master已绑定 1.拉...

  • git 使用记录(一):git pull/git fetch拉取

    我们常用git拉取数据,通常是用git pull,不过同时也有人在用git fetch,同是从远程仓库拉取数据下来...

  • git常用命令集锦

    git init实例化仓库git clone xxxxxxx克隆git pull origin master拉取g...

网友评论

    本文标题:拉取所有git仓库

    本文链接:https://www.haomeiwen.com/subject/osdqdxtx.html