git tag应用
文章目录
1. Tag概述
像其他版本控制系统(VCS)一样,Git 可以给历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 等等)。
参考:
1.1 命令
tag的命令与分支相似。
- 列出标签:
git tag - 创建标签:
git tag tag123- 附注标签:
git tag -a v1.4 -m 'my version 1.4' - 打在制定版本:
git tag -a v1.2 9fceb02
- 附注标签:
- 查看标签内容:
git show v1.4或git log v1.4- 按照版本排序:
git tag --sort="version:refname - 搜索:
git tag -l <pattern>,如git tag -l "v*"
- 按照版本排序:
- push标签:git push不会推送本地标签
- push特定标签:
git push origin [tagname] - push所有标签:
git push origin --tags
- push特定标签:
- 检出标签:
git checkout -b version2 v2.0.0 - 删除标签:
- 删除本地标签:
git tag -d v0.1批量:git tag -l "vTEST*"|xargs git tag -d - 删除远程标签:
git push origin --delete v0.1批量:git tag -l "vTEST*"|xargs git push origin --delete
- 删除本地标签:
2. 配置
2.1 jenkins
增加构建后操作的Publisher:

- v168形式的标签表示每次 jenkins上线构建的版本,使用
git tag --sort="version:refname" -l "v*"获得按照版本排序的tag。
2.2 Gitlab
需要添加jenkins用户为develop权限。
应用
- 比较
- 文件比较:
git diff v98 master,此命令比较v98和master文件不同。常用于比较两个版本是否一致。 commit:
git diff ^v98 master,此命令比较不在v98上但是在master上的commit有哪些。常用于比较两个版本不同的commit取得远程master上没有上线的commit:
1git fetch && git log `git tag --sort="version:refname" -l "v*"|tail -1`..origin/master
或者
1git fetch && git rev-list ^`git tag --sort="version:refname" -l "v*"|tail -1` origin/master --pretty=oneline
注:--sort="version:refname" -l "v*"要求v开头的tag都是jenkins打出来的,且要求git 2.1及以上版本
- 回滚
todo
文章作者 ladder1984
上次更新 2017-02-28