Git有commit,爲什麼還要引入tag?
“請把上週一的那個版本打包發佈,commit號是6a5819e...”
“一串亂七八糟的數字不好找!”
如果換一個辦法:
“請把上週一的那個版本打包發佈,版本號是v1.2”
“好的,按照tag v1.2查找commit就行!”
所以,tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
$ git checkout master
$ git tag v1.0 #創建標籤
$ git tag
默認標籤是打在最新提交的commit上的。有時候,如果忘了打標籤,比如,現在已經是週五了,但應該在週一打的標籤沒有打,怎麼辦?
方法是找到歷史提交的commit id,然後打上就可以了:
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 6224937 #找到對應的版本然後打tag
$ git tag
$ git show v0.9 #可以看到v0.9確實打到了這個標籤上
還可以創建帶有說明的標籤,用-a指定標籤名,-m指定說明文字:
$ git tag -a v0.1 -m "version 0.1 released" 3628164
刪除本地標籤 :
$ git tag -d v0.1
$ git tag
$ git push origin v1.0 #推送某個標籤到遠程
$ git push origin --tags #一次性推送所有的本地tag
刪除遠程標籤:
$ git tag -d v1.0
$ git push origin :refs/tags/v1.0
別名設置:
$ git config --global alias.ci commit # 將commit 設置成ci的別名