發(fā)布一個版本時香到,通常現(xiàn)在版本庫中打一個標簽报破,這樣就確定了打標簽時的版本悠就,將來?論什么時候,取某個標簽的版本泛烙,就是把那個打標簽的時刻的歷史版本取出來理卑。所以翘紊,標簽也是版本庫的?個快照蔽氨。
Git的標簽雖然是版本庫的快照,但其實它就是指向某個commit的指針(跟分?很像對不對?但是分?可以移動鹉究,標簽不能移動)宇立,所以,創(chuàng)建和刪除標簽都是瞬間完成的自赔。
- 打一個新標簽
默認標簽是打在最新提交的commit上的
// git tag name就可以打?個新標簽,
$ git tag v1.0
// 可以?命令git tag查看所有標簽:
$ git tag
v1.0
1.1 對歷史的commit id打標簽
// 查看歷史提交的commit id
$ git log --pretty=oneline --abbrev-commit
git tag v0.9 6224937 //在6224937處打一個v0.9的標簽
1.2 標簽不是按時間順序列出妈嘹,?是按字?排序的∩芊粒可以? git show tagname查看標簽信息:
1.3 創(chuàng)建帶有說明的標簽润脸,?-a指定標簽名,-m指定說明?字
$ git tag -a v0.1 -m "version 0.1 released" 3628164
- 操作標簽
2.1 刪除標簽
$ git tag -d v0.1
Deleted tag 'v0.1' (was e078af9)
2.2 推送某個標簽到遠程
因為創(chuàng)建的標簽都只存儲在本地他去,不會?動推送到遠程毙驯。所以,打錯的標簽可以在本地安全刪除灾测。
如果要推送某個標簽到遠程爆价,使?命令git push origin tagname:
$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
//?次性推送全部尚未推送到遠程的本地標簽
$ git push origin --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 554 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new tag] v0.2 -> v0.2
* [new tag] v0.9 -> v0.9
2.3 刪除遠程標簽
//1. 先刪除本地標簽
$ git tag -d v0.9
Deleted tag 'v0.9' (was 6224937)
//2. 然后,從遠程刪除媳搪。刪除命令也是push铭段,但是格式如下:
$ git push origin :refs/tags/v0.9
To git@github.com:michaelliao/learngit.git
- [deleted] v0.9
要看看是否真的從遠程庫刪除了標簽,可以登陸GitHub查看秦爆。