Git tag操作
前言
最近使用git來管理一個專案,到達一定階段後,需要將穩定的程式碼釋出成一個版本,經過查詢資料發現git的標籤操作剛好滿足我的要求,所以記錄下來,方便以後是使用查詢。
用途
標籤可以針對某一時間點的版本做標記,常用於版本釋出,這恰恰是我所需要的功能,將本地標籤推送到Github上即釋出了一個Release版本,下載和檢視非常方便。
標籤分類
git標籤分為兩種型別:輕量標籤和附註標籤。輕量標籤是指向提交物件的引用,附註標籤則是倉庫中的一個獨立物件,建議使用附註標籤,日後還可以檢視標籤資訊。
建立標籤
-
建立輕量標籤
$ git tag v0.2.0 -light
解釋:建立輕量標籤不需要傳遞引數,直接指定標籤名稱即可。 -
建立附註標籤
$ git tag -a v0.1.0 -m "release 0.1.0 version"
解釋:建立附註標籤時,引數-a即annotated的縮寫,指定標籤型別,後附標籤名。引數m指定標籤說明,說明資訊會儲存在標籤物件中。
檢視標籤
-
列出當前倉庫的所有標籤
$ git tag
-
列出符合模式的標籤
$ git tag -l 'v0.1.*'
-
檢視標籤版本資訊
$ git show v0.1.0
切換標籤
- 切換標籤與切換分支命令相同
$ git checkout [tagname]
解釋:切換標籤後處於一個空的分支上,即”You are in ‘detached HEAD’ state.”
刪除標籤
-
誤打或需要修改標籤時,需要先將標籤刪除,再打新標籤
$ git tag -d v0.1.2
解釋:引數-d即delete的縮寫,意為刪除其後指定的標籤。 -
刪除遠端標籤
兩種方式:
git push origin :refs/tags/標籤名
git push origin --delete tag 標籤名
補打標籤
- 給指定的commit打標籤
$ git tag -a v0.1.0 49e0cd22f6bd9510fe65084e023d9c4316b446a6
解釋:打標籤不必要在HEAD之上,也可在之前的版本上打,這需要你知道某個提交物件的校驗和,通過git log命令獲取。
釋出標籤
-
將v0.1.0標籤提交到git伺服器
$ git push origin v0.1.0
解釋:通常的git push不會將標籤物件提交到git伺服器,我們需要進行顯式的操作。 -
將本地所有標籤一次性提交到git伺服器
$ git push origin -–tags
原文連結:git tag常用操作