shell脚本实现git版本更新

2020-04-03  本文已影响0人  不留余白

背景交代:

每次代码发布需要打tag,有时候会忘记打,或者打完忘记推送到远程,导致运维发布的时候才发现,场面十分尴尬。
于是,这个shell脚本就诞生了。

脚本功能

1.进入项目目录
2.切换到master分支
3.pull master 最新代码
4.打 tag
5.推送tag
done

代码

#! /bin/bash
echo "tag..."
echo "1:项目1"
echo "2: 项目2"
waitInput=true
while  [ $waitInput == true ]
do
read -p "请选择项目:" id
if [ 1 == $id ]
then
    path="~/code/项目1"
    waitInput=false
elif [ 2 == $id ]
then
    path="~/code/项目2"
    waitInput=false
else 
    echo "目录不存在!"
fi
done
eval "cd $path"
echo "pwd:`pwd`"
echo "切换到master分支......"
git checkout  master
# echo "当前分支:`git branch` "
# pull 
git pull 
tagSuccess=false
while [ $tagSuccess == false ]
do
    waitInput=true
    while  [ $waitInput == true ]
    do
        read -p "请输入tag:" version
        if [ ! $version ] 
        then
            echo "tag 不能为空!"
        else 
           waitInput=false
        fi
    done
    echo $version
    eval "git tag $version"
    if [ $? -ne 0 ] 
    then
         echo "tag 创建失败!"
    else
    echo "tag 创建成功!"
        tagSuccess=true
    fi
done     
read -p "是否推送tag到远程? 【Y/N】" answer
case $answer in
Y|y|YES|yes)
eval "git push origin $version"
echo '已推送'
esac
echo 'done'

执行效果

$ sh ~/commond/tag.sh
tag...biz
1: 项目1
2: 项目2
请选择项目:1
pwd:项目1
切换到master分支......
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
Already up to date.
请输入tag:v200403
v200403
fatal: tag 'v200403' already exists
tag 创建失败!
请输入tag:v200403.1
v200403.1
tag 创建成功!
是否推送tag到远程? 【Y/N】n
done

这个脚本完全是现学现卖,边百度边写的,并未系统学习过shell脚本语法,不足之处,欢迎指正。

上一篇下一篇

猜你喜欢

热点阅读