列出tag
$ git tag # 在控制台打印出当前仓库的所有tag
$ git tag -l ‘v0.1.*’ # 搜索符合模式的Tag
打tag
git tag分为两种类型:轻量tag和附注tag。轻量tag是指向提交对象的引用,附注Tag则是仓库中的一个独立对象。建议使用附注Tag。
创建附注Tag
$ git tag -a v0.1.2 -m “0.1.2版本” //-m后面可写可不写 tag说明
创建附注Tag时,参数a即annotated的缩写,指定Tag类型,后附Tag名。参数m指定Tag说明,说明信息会保存在Tag对象中。
切换到Tag
与切换分支命令相同,用git checkout [tagname]
查看Tag信息
用git show命令可以查看Tag的版本信息:
$ git show v0.1.2
删除Tag
误打或需要修改Tag时,需要先将Tag删除,再打新Tag。
$ git tag -d v0.1.2 # 删除Tag
参数d即delete的缩写,意为删除其后指定的Tag。
给指定的commit打Tag
打Tag不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log获取)。
补打Tag
$ git tag -a v0.1.1 9fbc3d0
Tag推送到服务器
通常的git push不会将Tag对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2 Tag提交到git服务器
$ git push origin –-tags # 将本地所有Tag一次性提交到git服务器
注意:如果想看之前某个Tag状态下的文件,可以这样操作
1.git tag 查看当前分支下的Tag
2.git checkout v0.21 此时会指向打v0.21 Tag时的代码状态,(但现在处于一个空的分支上)
如何使用已创建的tag
目前我们所有的Git项目,在封版后,都会打个tag来标记版本。
有时候,当我们封版后,会发现一些严重的bug,不得不修改,但是这个时候,我们已经开始新版本的开发了,这时回退到tag,修改封版时候的代码就很有必要了
首先明确两个概念:
tag:你可以理解为一个代码的快照,它记录的是某个时刻的代码,你可以获取tag,但是不能编辑tag的代码
branch:分支,这个无需多解释了
android studio创建tag是有可视化界面来操作的,但是使用tag没有,你需要用到命令行。
使用已创建的tag,你需要:
找到这个tag,并把你本地代码的head移到这个tag上:git checkout tag_name.
这时候 git 可能会提示你当前处于一个“detached HEAD” 状态,因为 tag 相当于是一个快照,是不能更改它的代码的。
如果要在 tag 代码的基础上做修改,你需要创建一个branch:git checkout -b branch_name tag_name,其中的tag_name可省略
然后剩下的就跟我们在master上操作一样了,只不过你是操作的另外一个branch