#!/bin/bash
#author kingboy
#description: create tag list for update
#獲取當前專案的配置名稱
gitdir="tdwnews"
#要輸出的目錄路徑
dir="/home/git/$gitdir"
#當前操作目錄
pwdpath=$(pwd)
#判斷是否有該目錄沒有則建立
if test -e $
then
echo -e "$ exists!"
else
mkdir $dir
echo -e "$ create success!"
fi#拿出當前最大的版本號 如:v1.3
tag=$(git describe --tags `git rev-list --tags --max-count=1`)
#擷取字串從1到3 如1.3
tagnum=$
#版本號加1
s2=$(echo $tagnum+0.1 | bc)
#拼接v
newtag="v"$
#打標籤
git tag -a $ -m "$"
#推送到遠端
git push origin --tags
#生成全量更新包
#zip -r $/last.zip *
#生成不同版本間的更新包
#-n按照數字排序 -r 翻轉排序 -t 分隔符 -k以第幾列排序
echo -e "----------------tag list---------------------"
git tag | sort -n -r -t 'v' -k 2 |tee $/taglist.log #生成所有tag
#刪除版本資訊檔案
rm -rf $/update.json
#定義生成的版本個數
i=1versionnumber=1
cat $/taglist.log | while read one
do cat $/taglist.log | while read two
do #去掉自身和自身進行比較
if test $ = $
then
continue
fi#-------------------------------
#去掉重複的包 當新版不夠10個的時候,會生成 v7-v6 v6-v7 ,加上之後就不會了
#外層只要乙個迴圈,所以不需要了
#if test $} -gt $}
#then
# continue
#fi#---------------------------------------
#生成版本包
if test $[i] -le $[versionnumber]
then
rm -rf $/$-$
rm -rf $/$-$.zip
mkdir -p $/$-$/new
mkdir -p $/$-$/old
git diff $ $ --name-only | xargs zip $/$-$/new/$.zip
unzip -o $/$-$/new/$.zip -d $/$-$/new
rm -rf $/$-$/new/$.zip
git checkout $two
git diff $ $ --name-only | xargs zip $/$-$/old/$.zip
unzip -o $/$-$/old/$.zip -d $/$-$/old
rm -rf $/$-$/old/$.zip
cd $
zip -rq $-$.zip $-$
#傳送到主機
scp $-$.zip [email protected]:/home/wuxin/share/export/$
cd $pwdpath
#刪除版本資訊檔案 已經放在上面進行處理了
#重建版本資訊檔案
#echo "-$.zip\"}," >> $dir/update.json
git checkout master
fii=$(($i+1))
done
break
done
exit 0
第二版
#!/bin/bash
#author kingboy
#description: create tag list for update
#獲取當前專案的配置名稱
gitdir="tdwnews"
#要輸出的目錄路徑
dir="/home/git/$gitdir"
#當前操作目錄
pwdpath=$(pwd)
#判斷是否有該目錄沒有則建立
if test -e $
then
echo -e "$ exists!"
else
mkdir $dir
echo -e "$ create success!"
fi
#拿出當前最大的版本號 如:v1.3
tag=$(git describe --tags `git rev-list --tags --max-count=1`)
#擷取字串從1到3 如1.3
tagnum=$
#tagnum=2.5
#版本號加1
s2=$(echo $tagnum+0.1 | bc)
#拼接v
newtag="v"$
#打標籤
git tag -a $ -m "$"
#推送到遠端
git push origin --tags
#生成全量更新包
#zip -r $/last.zip *
#生成不同版本間的更新包
#-n按照數字排序 -r 翻轉排序 -t 分隔符 -k以第幾列排序
echo -e "----------------tag list---------------------"
git tag | sort -n -r -t 'v' -k 2 |tee $/taglist.log #生成所有tag
#刪除版本資訊檔案
rm -rf $/update.json
#定義生成的版本個數
i=1
versionnumber=1
cat $/taglist.log | while read one
do
cat $/taglist.log | while read two
do
#去掉自身和自身進行比較
if test $ = $
then
continue
fi
#-------------------------------
#去掉重複的包 當新版不夠10個的時候,會生成 v7-v6 v6-v7 ,加上之後就不會了
#外層只要乙個迴圈,所以不需要了
#if test $} -gt $}
#then
# continue
#fi
#---------------------------------------
#生成版本包
if test $[i] -le $[versionnumber]
then
rm -rf $/$-$
rm -rf $/$-$.zip
mkdir -p $/$-$/new
mkdir -p $/$-$/old
git diff $ $ --name-only | xargs zip $/$-$/new/$.zip
unzip -o $/$-$/new/$.zip -d $/$-$/new
rm -rf $/$-$/new/$.zip
git checkout $two
git diff $ $ --name-only | xargs zip $/$-$/old/$.zip
unzip -o $/$-$/old/$.zip -d $/$-$/old
rm -rf $/$-$/old/$.zip
cd $
zip -rq $-$.zip $-$
#傳送到主機
scp $-$.zip [email protected]:/home/wuxin/share/export/$
cd $pwdpath
#刪除版本資訊檔案 已經放在上面進行處理了
#重建版本資訊檔案
#echo "-$.zip\"}," >> $dir/update.json
git checkout master
fi
i=$(($i+1))
done
break
done
exit 0
git 使用詳解 tag打標籤
git 中的tag指向一次commit的id,通常用來給開發分支做乙個標記,如標記乙個版本號。打標籤 git tag a v1.01 m relase version 1.01 註解 git tag 是打標籤的命令,a 是新增標籤,其後要跟新標籤號,m 及後面的字串是對該標籤的注釋。提交標籤到遠端倉...
Git系列 新版本上線後打tag
平時開發中,一般倉庫裡有乙個master分支或者dev分支,儲存最新的 成果,然後再拉乙個子分支,例如 v0.0.1,一般是乙個版本,拉乙個分支。v0.0.1上線後,合併到master或者dev,刪除v0.0.1分支,再拉第二個分支v0.0.2。新版本已經上線,先把當前分支推送到遠端伺服器,然後就在...
git 打標籤並推送tag到託管伺服器
我們常常在 封板時,使用git 建立乙個tag 這樣乙個不可修改的歷史 版本就像被我們封存起來一樣,不論是運維發布拉取,或者以後的 版本管理,都是十分方便的.首先我們了解下 git 的 tag 功能 git 下打標籤其實有2種情況 1 輕量級的 它其實是乙個獨立的分支,或者說是乙個不可變的分支.指向...