139.00.005 Git學習-標簽管理Tag
@(139 - Environment Settings | 環境配置)
一、Why
發布一個版本時,我們通常先在版本庫中打一個標簽(tag),這樣,就唯一確定了打標簽時刻的版本。將來無論什麽時候,取某個標簽的版本,就是把那個打標簽的時刻的歷史版本取出來。所以,標簽也是版本庫的一個快照。
Git的標簽雖然是版本庫的快照,但其實它就是指向某個commit的指針(跟分支很像對不對?但是分支可以移動,標簽不能移動),所以,創建和刪除標簽都是瞬間完成的。
Git有commit,為什麽還要引入tag?
“請把上周一的那個版本打包發布,commit號是6a5819e...”
“一串亂七八糟的數字不好找!”
如果換一個辦法:
“請把上周一的那個版本打包發布,版本號是v1.2”
“好的,按照tag v1.2查找commit就行!”
所以,tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
二、創建標簽
命令git tag <name>
用於新建一個標簽,默認為HEAD,
也可以指定一個commit id $ git tag v0.9 6224937(commit id)
;
P.S.列出歷史提交的commit idgit log --pretty=oneline --abbrev-commit
git tag -a <tagname> -m "blablabla..."
git tag -s <tagname> -m "blablabla..."
可以用PGP簽名標簽;
命令git tag
可以查看所有標簽。
三、操作標簽
命令git push origin <tagname>
可以推送一個本地標簽;
命令git push origin --tags
可以推送全部未推送過的本地標簽;
命令git tag -d <tagname>
可以刪除一個本地標簽;
命令git push origin :refs/tags/<tagname>
可以刪除一個遠程標簽。
139.00.005 Git學習-標簽管理Tag