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脚本语法,不足之处,欢迎指正。