# 標簽
## 1. 創建 `git` 標簽
>[success]git標簽分為兩種類型:輕量標簽和附注標簽。輕量標簽是指向提交對象的引用,附注標簽則是倉庫中的一個獨立對象。建議使用附注標簽。
~~~
# 創建輕量標簽
$ git tag v0.1.2-light
# 創建附注標簽
$ git tag -a v0.1.2 -m “0.1.2版本”
~~~
>創建輕量標簽不需要傳遞參數,直接指定標簽名稱即可。
創建附注標簽時,參數a即annotated的縮寫,指定標簽類型,后附標簽名。參數m指定標簽說明,說明信息會保存在標簽對象中。
## 2. 查看當前分支下的標簽
~~~
git tag
~~~
## 3. 切換到標簽
>[success]與切換分支命令相同
>
~~~
git checkout [tagname]
~~~
## 4. 查看標簽信息
>[success]用git show命令可以查看標簽的版本信息:
>
~~~
$ git show v0.1.2
~~~
## 5. 刪除標簽
>[success]誤打或需要修改標簽時,需要先將標簽刪除,再打新標簽。
>
~~~
$ git tag -d v0.1.2 # 刪除標簽
~~~
>參數d即delete的縮寫,意為刪除其后指定的標簽。
>
## 6 .刪除遠程標簽
>[success]事實上Git 的推送和刪除遠程標簽命令是相同的,刪除操作實際上就是推送空的源標簽refs:git push origin 標簽名
~~~
git push origin refs/tags/源標簽名:refs/tags/目的標簽名
git push origin :refs/tags/標簽名
~~~
## 7. 給指定的commit打標簽
>[success]打標簽不必要在head之上,也可在之前的版本上打,這需要你知道某個提交對象的校驗和(通過git log獲取)。
>
~~~
# 補打標簽
$ git tag -a v0.1.1 9fbc3d0
~~~
## 8. 標簽發布
>[success]通常的git push不會將標簽對象提交到git服務器,我們需要進行顯式的操作:
>
~~~
$ git push origin v0.1.2 # 將v0.1.2標簽提交到git服務器
$ git push origin –tags # 將本地所有標簽一次性提交到git服務器
~~~
## 9. 如果想看之前某個標簽狀態下的文件,可以這樣操作
### 1. 查看當前分支下的標簽
~~~
git tag
~~~
### 2. 切換到指定標簽
~~~
git checkout v0.21
//此時會指向打v0.21標簽時的代碼狀態,(但現在處于一個空的分支上)
~~~
### 3. 查看指定文件
~~~
cat test.txt //查看某個文件
~~~