列出標籤
$ git tag
列出特定版本標籤
$ git tag -l 'v1*'
建立標籤
附註標籤 tag -a
附註標籤(annotated)
$ git tag -a v2.56 -m "version 2.56" # -m 選定標籤
$ git show v2.56 # show 檢視標籤詳細資訊,裡面有對應的提交附註資訊
輕量標籤
輕量標籤(lightweight)
$ git tag v2.6-full # 不需要使用 -a、-s、-m 選項
$ git show # 現在的 show 只能看到提出資訊,看不到額外的標籤資訊
補標籤
$ git log --pretty=oneline # 檢視提交歷史
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
2b19ed90da10f72c7fbb0b9279d7cc897091bdf5 updated rakefile # 在這裡或在 v0.2 忘記打標籤
在命令末尾指定提交的校驗和(或部分校驗和):
$ git tag -a v0.2 2b19ed
這時候可以用 git tag
看到那次提交上打上標籤了。
共享標籤
預設情況下,git push
命令並不會傳送標籤到遠端倉庫伺服器上,在建立完標籤後必須顯式的推送標籤到共享伺服器上。
可以執行 git push origin [tagname]
。
$ git push origin v1.6
如果想要一次性推送很多標籤,可以使用帶有 --tag
選項的 git push
命令,這會把所有不在遠端倉庫伺服器上的標籤全部傳送到遠端倉庫裡。
$ git push origin --tags
刪除標籤
要刪除本地倉庫標籤,可以使用命令 git tag -d <tagname>
$ git tag -d v1.2-lw # 刪除一個輕量級標籤
Deleted tag 'v1.2-lw' (was e7d5add)
刪除本地倉庫標籤並不會從任何遠端倉庫中移除這個標籤
必須使用 git push <remote> :refs/tags/<tagname>
來更新遠端倉庫:
$ git push origin :refs/tags/v1.2-lw
To /git@github.com:schacon/learngit.git
- [deleted] v1.2-lw
標出標籤
檢視某個標籤所指向的檔案版本,可以使用 git checkout
命令,雖然說這會讓倉庫處於 “分離頭指標(detacthed HEAD)”狀態。
$ git checkout 2.0.0
Note: checking out '2.0.0'.
.
.
.
在 “detacthed HEAD” 狀態下,如果做了某些更改然後提交它們,標籤不會發生變化,這個新提交將不屬於任何分支,並且無法訪問,除非確切的提交雜湊。
因此,如果需要進行更改。比如修復舊版本的錯誤(這通常需要建立一個新分支):
$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'
如果在這之後又進行了一次提交,version2
分支會因為這個改動向前移動,version2
分支就會和 v2.0.0
標籤稍有不同,這時需要非常謹慎。
本作品採用《CC 協議》,轉載必須註明作者和本文連結