标签可以针对某一时间点的版本做标记,常用于版本发布。
详细:
在某一个分支里打一个标签。先转到这个分支,然后执行:
git tag -a <tag_name> -m "tag message"e.g
git tag -a v1.0.0 -m "v1.0.0"
打了标签后,这个标签只是本地的标签,需要推到服务器上:
git push <remote> <tag_name>
e.g push 到本分支对应的服务器上的那个分支
git push origin --tags
这是把本地还没有push过的标签都push上去
会滚到某一个标签:
git reset --hard <tag_name>
e.g.
git reset --hard v1.0.0
- 列出标签
$ git tag # 在控制台打印出当前仓库的所有标签
$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签
- 打标签
# 创建轻量标签
$ git tag v0.1.2-light
创建轻量标签不需要传递参数,直接指定标签名称即可。
# 创建附注标签
$ git tag -a v0.1.2 -m “0.1.2版本”
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。
- 切换到标签
与切换分支命令相同,用git checkout [tagname]
查看标签信息
用git show
命令可以查看标签的版本信息:
$ git show v0.1.2
- 删除标签
误打或需要修改标签时,需要先将标签删除,再打新标签。
$ git tag -d v0.1.2 # 删除标签
参数d即delete的缩写,意为删除其后指定的标签。
- 给指定的commit打标签
打标签不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log
获取)。
# 补打标签
$ git tag -a v0.1.1 9fbc3d0
- 标签发布
通常的git push
不会将标签对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器
注意:如果想看之前某个标签状态下的文件,可以这样操作
1.git tag 查看当前分支下的标签
2.git checkout v0.21 此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)
3. cat test.txt 查看某个文件