git脚本操作项目

97 阅读1分钟

1. 使用git脚本操作管理项目

#!/bin/bash

# 只用修改这个地方,就是自己项目所在的文件夹
dir_name="项目文件夹"

#拉取代码
function git_pull(){
    # 只用修改这个地方,就是自己项目所在的文件夹
    dir_name=$1

    cd ${dir_name}

    list=$(ls)

    update_moudle=()

    index=0

    for item in ${list}
    do
        echo ""
        echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
        read -t 20 -p "是否更新项目${item}(y/n):" pd
        if [ ${pd} = "y" ];
        then
            cd ${item}
            git pull
            #存储已经更新成功的模块
            update_moudle[${index}]=${item}
            index=$[${index}+1]
            #回到项目文件夹
            cd ${dir_name}
            echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}更新成功>>>>>>>>>>>>>>>>>>>>>>>>"
        fi
    done

    echo ""
    echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共更新${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # echo ${update_moudle[@]}
    for((i=0;i<${#update_moudle[@]};i++)) #根据数组长度进行更新
    do
        echo ${update_moudle[i]}
    done
}

#切换代码分支
function git_change_branch(){
    # 只用修改这个地方,就是自己项目所在的文件夹
    dir_name=$1

    cd ${dir_name}

    list=$(ls)

    update_moudle=()

    index=0

    for item in ${list}
    do
        echo ""
        echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
        read -t 20 -p "是否切换项目${item}分支(y/n):" pd
        if [ ${pd} = "y" ];
        then
            cd ${item}
            git branch -a
            read -t 20 -p "请输入切换分支名称:" fz
            git checkout ${fz}

            #存储已经切换成功的模块
            update_moudle[${index}]=${item}
            index=$[${index}+1]
            #回到项目文件夹
            cd ${dir_name}
            echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}切换到分支${fz}成功>>>>>>>>>>>>>>>>>>>>>>>>"
        fi
    done

    echo ""
    echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共切换分支${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # echo ${update_moudle[@]}
    for((i=0;i<${#update_moudle[@]};i++)) #根据数组长度进行更新
    do
        echo ${update_moudle[i]}
    done
}

echo ">>>>>>>>>>>>>>>>>>>>>>>>开始使用git编辑代码>>>>>>>>>>>>>>>>>>>>>>>>"
echo "1-拉取代码"
echo "2-切换分支"
read -t 20 -p "请输入操作代码:" git_operate
case ${git_operate} in
    "1")
       git_pull ${dir_name}
    ;;
    "2")
       git_change_branch ${dir_name}
esac
  • 此处使用了shell中的函数,如下所示

2. 更新代码

#拉取代码
function git_pull(){
    # 只用修改这个地方,就是自己项目所在的文件夹
    dir_name=$1

    cd ${dir_name}

    list=$(ls)

    update_moudle=()

    index=0

    for item in ${list}
    do
        echo ""
        echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
        read -t 20 -p "是否更新项目${item}(y/n):" pd
        if [ ${pd} = "y" ];
        then
            cd ${item}
            git pull
            #存储已经更新成功的模块
            update_moudle[${index}]=${item}
            index=$[${index}+1]
            #回到项目文件夹
            cd ${dir_name}
            echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}更新成功>>>>>>>>>>>>>>>>>>>>>>>>"
        fi
    done

    echo ""
    echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共更新${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # echo ${update_moudle[@]}
    for((i=0;i<${#update_moudle[@]};i++)) #根据数组长度进行更新
    do
        echo ${update_moudle[i]}
    done
}

3. 切换分支

#切换代码分支
function git_change_branch(){
    # 只用修改这个地方,就是自己项目所在的文件夹
    dir_name=$1

    cd ${dir_name}

    list=$(ls)

    update_moudle=()

    index=0

    for item in ${list}
    do
        echo ""
        echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
        read -t 20 -p "是否切换项目${item}分支(y/n):" pd
        if [ ${pd} = "y" ];
        then
            cd ${item}
            git branch -a
            read -t 20 -p "请输入切换分支名称:" fz
            git checkout ${fz}

            #存储已经切换成功的模块
            update_moudle[${index}]=${item}
            index=$[${index}+1]
            #回到项目文件夹
            cd ${dir_name}
            echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}切换到分支${fz}成功>>>>>>>>>>>>>>>>>>>>>>>>"
        fi
    done

    echo ""
    echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共切换分支${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # echo ${update_moudle[@]}
    for((i=0;i<${#update_moudle[@]};i++)) #根据数组长度进行更新
    do
        echo ${update_moudle[i]}
    done
}