批量更新指定目录下git仓库的一种方式

需求

有一些github上的项目,学习使用时拉取的master,过了一段时间,想更新到最新,需要一个一个目录进去执行git pull。

当目录比较多时,或者需要经常同步更新时,就比较繁索。

写个小脚本,分分钟搞定它吧!

shell脚本

我平时在Linux上开发,于是shell脚本是第一选择。

其实在windows上,使用git bash也是一样。

废话不说,代码如下:

#!/bin/bash

function showGreen(){ 
    echo -e "\033[32m $1 \033[0m"
}
function showBlue(){ 
    echo -e "\033[36m $1 \033[0m"
}
function showYellow(){ 
    echo -e "\033[33m $1 \033[0m"
}
function showWhite(){ 
    echo -e "\033[37m $1 \033[0m"
}

function UpdateGitDir() {
    if [[ -d $1 ]]
    then
        folderlist=`ls $1 | grep -v '^$'`
        cd $1
    else
        echo "$1 is not directory, program exit"
        exit -1
    fi
    curr_dir=`pwd`
    showBlue "curr_dir: $curr_dir"
    for i in $folderlist
    do
        if [[ -d $curr_dir/$i ]]
        then
            showYellow "enter $curr_dir/$i"
            cd $curr_dir/$i
            git pull
        fi
    done
}

root_dir=.
if (($# == 1))
then
	root_dir=$1
fi

showBlue "begin, root_dir: $root_dir"
UpdateGitDir $root_dir

执行效果如下:

% ./git_pull.sh test 
 begin, root_dir: test 
 curr_dir: /home/work/test 
 enter /home/work/test/boost 
Already up-to-date.
 enter /home/work/test/redis 
Already up-to-date.
小结

脚本很简单,拿来即用。

可进行修改调试,定制更的丰富的指令,比如进入子目录、更新git子模块等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值