下半年,运维组将逐步接手各应用的部署上线工作

为了规范化整个流程,打算所有的部署都基于tag来进行

以前的git部署脚本是直接fetch最新的代码到master上

所以就需要进行相应的修改,对tag进行操作

以下是tag的一些基本操作

 

#打tag t1

git tag -a -m 'for tag t1'

git tag t2  b389     为某次的commit打一个tag

#显示所有的tag

git tag

#查看本地tag

git show t2

#查看远程tag

git ls-remote -t

#删除本地tag t1

git tag -d t1

#删除远程tag

git push origin :refs/tags/t4

#以tag t4为基础生成新的分支b4

git branch b4 t4

#把某个tag push到远程,默认的git push是不会push tag信息的

git push origin t_master_20100713

#push所有的tag

git push origin --tags

#切换到某个tag上

git checkout t2

部署的部分脚本如下:

 

echo "Begin git fetch from remote repositories"

ori_commit_id=`cd $local_module_path;git log -1 --format="%h"`

cd $local_module_path;git checkout master;git reset --hard;git fetch origin

new_commit_id=`cd $local_module_path;git log -1 --format="%h" $tag_name`

echo "From commitid $ori_commit_id to $new_commit_id have some changed files........................................."

echo ""

cd $local_module_path;git log --name-status --pretty=format:"%ci %Cgreen%aN%Creset %s" $ori_commit_id..$new_commit_id

echo ""

echo "End  commitid $ori_commit_id to $new_commit_id have some changed files.........................................."

cd $local_module_path;git reset --hard;git pull origin master;git checkout $tag_name;