美文网首页
全量更新当前目录下所有GIT目录

全量更新当前目录下所有GIT目录

作者: 晓得为_ | 来源:发表于2022-02-11 15:40 被阅读0次

    全量更新当前目录下所有GIT目录
    sh gitpull.sh

    #/bin/sh
    #全量更新当前目录下素有其它目录
    ls
    pwd
    echo "你将更新以上git目录的当前分支"
    echo -e "请输入确认[y/n]:"
    dirNameBase=${PWD}
    
    read sure
    if [[ $sure != 'y' ]]; then
        echo "已取消,退出本次部署"
        exit
    fi
    
    
    modifiedDirArray=()
    for k in $(ls $(pwd))
    do
        cddir="${dirNameBase}/${k}"
        cd ${cddir}
        dirName=${PWD##*/}
        echo "dirName=${dirNameBase}/${k}"
        gitStatus=$(git status)
        if [[ $gitStatus == *repository* ]]
        then
            echo "$dirName 目录不是git仓库"
            cd ..
            continue
        fi
        gitBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
        echo "操作模块:" $dirName "中..."
        if [[ $gitStatus == *modified* ]]
        then
            modifiedDirArray+=($dirName)
            echo "    当前分支: ${gitBranch} 存在未提交代码,请手动更新"
        else
            git pull &> /dev/null
            echo "    当前分支: ${gitBranch} 已经升级到最新"
        fi
        cd ..
    done
    
    modifiedCount=${#modifiedDirArray[@]}
    if [ $modifiedCount -eq 0 ]; then
        echo "所有模块的当前分支都已经更新到最新"
    else
        echo "以下 $modifiedCount 个模块未完成更新:"
        printf '%s\n' "${modifiedDirArray[@]}"
    fi
    

    相关文章

      网友评论

          本文标题:全量更新当前目录下所有GIT目录

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