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