發布乙個版本時,我們通常先在版本庫中打乙個標籤(tag),這樣,就唯一確定了打標籤時刻的版本。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。所以,標籤也是版本庫的乙個快照。
git的標籤雖然是版本庫的快照,但其實它就是指向某個commit的指標(跟分支很像對不對?但是分支可以移動,標籤不能移動),所以,建立和刪除標籤都是瞬間完成的。
git有commit,為什麼還要引入tag?
「請把上週一的那個版本打包發布,commit號是6a5819e...」注意「一串亂七八糟的數字不好找!」
如果換乙個辦法:
「請把上週一的那個版本打包發布,版本號是v1.2」
「好的,按照tag v1.2查詢commit就行!」
所以,tag就是乙個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
注意,標籤不是按時間順序列出,而是按字母排序的在git中打標籤非常簡單,首先,切換到需要打標籤的分支上,然後,敲命令標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。
git tag
就可以打乙個新標籤:
$ git tag v1.0
可以用命令git tag
檢視所有標籤:
$ git tagv1.0
預設標籤是打在最新提交的commit上的。有時候,如果忘了打標籤,比如,現在已經是周五了,但應該在周一打的標籤沒有打,怎麼辦?方法是找到歷史提交的commit id,然後打上就可以了.比方說要對add merge
這次提交打標籤,它對應的commit id是f52c633
,敲入命令:
$ git tag v0.9 f52c633
再用命令git tag
檢視標籤
$ git tag#還記得嗎,排序是按字母排序的v0.9
v1.0
可以用git show
檢視標籤資訊:
$ git show v0.9commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
author: michael liao date: fri may 18 21:56:54 2018 +0800
add merge
diff --git a/readme.txt b/readme.txt
還可以建立帶有說明的標籤,用-a
指定標籤名,-m
指定說明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
用命令git show
可以看到說明文字
這種方法不能為已存在的標籤加上說明文字,那種方式能做的我也不知道
c:\users\administrator.sc-2012132\learngit (master -> origin)λ git tag -a v1.0 -m "version 1.0 released"
fatal: tag 'v1.0' already exists
c:\users\administrator.sc-2012\learngit (master -> origin)
λ git tag -a v1.0 -m "version 1.0 released" 5370aa0
fatal: tag 'v1.0' already exists
刪除標籤
$ git tag -d v0.1deleted tag 'v0.1' (was f15b0dd)
因為建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除。
如果要推送某個標籤到遠端,使用命令git push origin
:
一次性推送全部尚未推送到遠端的本地標籤:
$ git push origin --tagstotal 0 (delta 0), reused 0 (delta 0)
to github.com:michaelliao/learngit.git
* [new tag] v0.9 -> v0.9
刪除遠端標籤
先從本地刪除:
$ git tag -d v0.9deleted tag 'v0.9' (was f52c633)
然後,從遠端刪除。刪除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9to github.com:michaelliao/learngit.git
- [deleted] v0.9
$ git tag -d v0.1deleted tag 'v0.1' (was f15b0dd)
git 標籤管理
1.建立標籤 切換到需要打標籤的分支上 git branch git checkout master switch to branch master 然後git tag 就可以打乙個新標籤 git tag v1.02.檢視標籤資訊 git show v0.93.刪除本地標籤 git tag d v0...
Git 標籤管理
發布乙個版本時,我們通常先在版本庫中打乙個標籤 tag 這樣,就唯一確定了打標籤時刻的版本。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。所以,標籤也是版本庫的乙個快照。git的標籤雖然是版本庫的快照,但其實它就是指向某個commit的指標 跟分支很像,但是分支可以移動...
Git標籤管理
目錄 git標籤 在當前commit處建立標籤 指定commit建立標籤 建立標籤時指定自定義描述 檢視標籤列表 檢視標籤詳情 刪除本地標籤 將指定標籤推送到遠端倉庫 刪除遠端倉庫中的標籤 git中的標籤 tag 就是git版本倉庫的快照。它指向某個commit指標。與分支的概念不同,標籤指向某個c...