git tag的操作
下半年,运维组将逐步接手各应用的部署上线工作
为了规范化整个流程,打算所有的部署都基于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;