git自動打tag,再生成增量包

2021-08-08 21:15:37 字數 4656 閱讀 9352

#!/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 輕量級的 它其實是乙個獨立的分支,或者說是乙個不可變的分支.指向...