在版本管理中,Tag就是用来标记和保存一个配置状态,用来对配置进行跟踪和备份。
在发布版本时,一般都会创建一个Tag。然后用这个Tag就能引用到这个版本。
在Git中,如果知道一个Tag状态,如何在本地将配置切换到该状态呢?
使用checkmout命令,加上tag名,就可以切换到tag,类似于check out一个branch或commit。比如:
$ git checkout tags/<tag> -b <branch>
tags是前缀,不加也可以。还有后面的-b <branch>,也可以不加,如果不加,就是一个 'detached HEAD' state。
注意,这个tag是远程仓库的tag,而本地要有最新的tag list,包含这个要checkout出来的tag才可以。
如何更新本地tag list?
$ git fetch --all --tags
Fetching origin
From git-repository
98a14be..7a9ad7f master -> origin/master
* [new tag] v1.0 -> v1.0
这里fetch tags时,不加--all也可以。
举例,比如要checkout出一个“v1.0”的tag,同时创建一个新的branch名为“release”:
$ git checkout tags/v1.0 -b v1.0-branch
Switched to a new branch 'v1.0-branch'
然后使用log命令查看一下本地工作区的状态,是否切换成功:
$ git log --oneline --graph
* 53a7dcf (HEAD -> v1.0-branch, tag: v1.0) Version 1.0 commit
* 0a9e448 added files
* bd6903f (release) first commit
如何check出一个最新的tag出来?
1,更新本地Tag
$ git fetch --tags
2,使用git describe命令,取得最新的tag:
$ tag=$(git describe --tags `git rev-list --tags --max-count=1`)
$ echo $tag
v2.0
3,使用git checkout命令切换到新分支:
$ git checkout $tag -b latest
Switched to a new branch 'latest'
然后使用git log命令来查阅是否操作成功。
参考:
1,How To Checkout Git Tags – devconnected