天天看點

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的縮寫,意為删除其後指定的标簽。

補打标簽

  • 給指定的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