#! /bin/bash
a=10
da=`date +%Y/%m/%d-%H:%M:%S` #获取时间
version=''
#git status -s | grep -Ei "Untracked files" && a=0
#判断当前分支状态是否被改变
g=`git status -s`
if [ "$g" != "" ];then
a=0 #被改变
else a=1 #未改变
fi
#echo "a=$a"
if [ $a -eq 1 ];then
git describe --tags --exact-match --abbrev=0 #判断是否有标签
if [ $? -eq 0 ];then #判断上条命令是否正确执行
a=4 #被执行,有标签
else a=3 #命令有误,没有标签
fi
fi
echo "a=$a"
if [ $a -eq 10 ];then
version='warning'
elif [ $a -eq 0 ];then
version='test by '$da
elif [ $a -eq 3 ];then
version='no version'
elif [ $a -eq 4 ];then
version=`git describe --tags --exact-match --abbrev=0`
else version='error'
fi
echo "$version" > .VERSION
规则:
当git上有标签时则以标签名作为版本号;
当git上没有标签时则为no version;
当git上的原文件的任何一处被改变了则为test版本;