來自我的個人博客Minecode.link
簡述
作為版本管理工具霞捡,Git可以對某個版本打上標簽(tag),表示本版本為發(fā)行版薄疚。在發(fā)布軟件,以及使用CocoaPods創(chuàng)建依賴庫等情況時赊琳,需要對其版本使用標簽注釋街夭。故簡單總結(jié)一下添加tag的方式。
使用Git命令
查看標簽
打印所有標簽
git tag`
打印符合檢索條件的標簽
git tag -l <版本號>
如 git tag -l 1.*.*
為搜索一級版本為1的版本
查看對應(yīng)標簽狀態(tài)
git checkout <版本號>
創(chuàng)建本地標簽
創(chuàng)建輕量標簽
輕量標簽指向一個發(fā)行版的分支躏筏,其只是一個像某commit的引用板丽,不存儲名稱時間戳及標簽說明等信息。定義方法如下
git tag <版本號>-light
創(chuàng)建帶附注標簽
相對于輕量標簽,附注標簽是一個獨立的標簽對象埃碱,包含了名稱時間戳以及標簽備注等信息猖辫,同時指向?qū)?yīng)的commit。定義方法如下
git tag -a <版本號> -m "<備注信息>"
同時我們也可以像特定的commit添加標簽砚殿,使用該commit對應(yīng)的SHA值即可
git tag -a <版本號> <SHA值> -m "<備注信息>"
比如 git tag -a 1.0.0 0c3b62d -m "Release Edition v1.0.0"
就是為SHA為0c3b62d的這次提交打了1.0發(fā)行版的tag
刪除本地標簽
git tag -d <版本號>
將本地標簽提交到遠程倉庫
前面所提到的創(chuàng)建標簽啃憎,只是將標簽添加到了本地的版本管理,我們需要在創(chuàng)建之后將本地標簽同步到遠程倉庫似炎,如Github辛萍。
推送所有標簽
git push origin --tags
推送指定版本的標簽
git push origin <版本號>
刪除遠程倉庫的標簽
同創(chuàng)建本地標簽一樣,刪除了本地標簽之后也要同時刪除遠程倉庫的標簽羡藐。
新版本Git (> v1.7.0)
git push origin --delete <版本號>
新舊版本通用方法
舊版本Git并沒有提供直接刪除的方法贩毕,而我們可以通過將一個空標簽替換現(xiàn)有標簽來實現(xiàn)刪除標簽,即如下命令
git push origin :refs/tags/<版本號>
補充:使用Github添加標簽
Github為我們提供了在頁面上進行編輯發(fā)行版本的方式仆嗦,如下圖所示:
在Github上為項目打tag可在release頁面辉阶,選擇創(chuàng)建新tag并按下圖所示填寫即可。刪除tag也同理瘩扼。母谆甜。
總結(jié)
最后總結(jié)一下常用命令,方便查閱邢隧。
/// 查看標簽
// 打印所有標簽
git tag
// 打印符合檢索條件的標簽
git tag -l 1.*.*
// 查看對應(yīng)標簽狀態(tài)
git checkout 1.0.0
/// 創(chuàng)建標簽(本地)
// 創(chuàng)建輕量標簽
git tag 1.0.0-light
// 創(chuàng)建帶備注標簽(推薦)
git tag -a 1.0.0 -m "這是備注信息"
// 針對特定commit版本SHA創(chuàng)建標簽
git tag -a 1.0.0 0c3b62d -m "這是備注信息"
/// 刪除標簽(本地)
git tag -d 1.0.0
/// 將本地標簽發(fā)布到遠程倉庫
// 發(fā)送所有
git push origin --tags
// 指定版本發(fā)送
git push origin 1.0.0
/// 刪除遠程倉庫對應(yīng)標簽
// Git版本 > V1.7.0
git push origin --delete 1.0.0
// 舊版本Git
git push origin :refs/tags/1.0.0