Git 提供了一个叫 tag的东西,即标签。
作用
每一次commit都会生成一串字符ID,如下所示:
commit 7f2de2b2560e5d0623d64ef56f2128ed4ab532e0
这在正常的开发流程中没有什么问题,也不会去关心,但是等我们要发布的时候,或者已经发布了几个版本之后,要找回之前发布的版本到底是在哪个提交呢?
记住这串id吗? No way! 标签 (tag) 的作用就在这里了。
使用
在Git中tag有两种,一种叫轻量标签,一种叫附注标签。
- 轻量标签:只是对某次提交的一个引用,也就是说,也就是一串比较好记的id。
- 附注标签:是一个独立的对象,也就是说会存有一分独立的代码,类似一个分支。
对于我们在项目中来说,使用附注标签肯定更靠谱一点。
轻量标签
git tag v0.0.1
附注标签
git tag -a v0.0.1 -m "Version One"
-a 其实也就是annotated,附注的意思, 而 -m 则指定了说明信息。
显示标签
git tag
v0.1.1
v0.1.2
v0.2.1
还可通过 -l 的参数来过滤展示标签
git tag -l "v0.1.*"
v0.1.1
v0.1.2
查看具体的标签内容
git tag v0.1.1
tag v0.1.1
Tagger: linmiansheng
Date: Tue Dec 8 11:29:32 2015 +0800
0.0.1 Version on 2015-12-08
commit 0a609b85b2a51fcc54ced9a98b7e525a811c9590
Author: linmiansheng
Date: Tue Dec 8 11:26:30 2015 +0800
bugfix
diff --git a/app/src/main/java/com/Test.java
b/app/src/main/java/com/Test.java
index 47933d1..b83f76e 100644
...
删除标签
git tag -d v0.1.1
推送标签
附注标签就类似分支一样,所以也需要我们使用push命令来进行推送。
- 单独推送某个标签
git push origin v0.1.1
- 一次性推送所有标签
git push origin --tag
利用 –tag 参数,可将本地的所有tag都推送到远程服务器上。
其他如checkout操作等,就把tag当作一个分支使用即可。