列出tag
$ git tag # 在控制臺打印出當前倉庫的所有tag
$ git tag -l ‘v0.1.*’ # 搜索符合模式的Tag
打tag
git tag分為兩種類型:輕量tag和附注tag。輕量tag是指向提交對象的引用,附注Tag則是倉庫中的一個獨立對象。建議使用附注Tag。
創建附注Tag
$ git tag -a v0.1.2 -m “0.1.2版本” //-m后面可寫可不寫 tag說明
創建附注Tag時,參數a即annotated的縮寫,指定Tag類型,后附Tag名。參數m指定Tag說明,說明信息會保存在Tag對象中。
切換到Tag
與切換分支命令相同,用git checkout [tagname]
查看Tag信息
用git show命令可以查看Tag的版本信息:
$ git show v0.1.2
刪除Tag
誤打或需要修改Tag時,需要先將Tag刪除,再打新Tag。
$ git tag -d v0.1.2 # 刪除Tag
參數d即delete的縮寫,意為刪除其后指定的Tag。
給指定的commit打Tag
打Tag不必要在head之上,也可在之前的版本上打,這需要你知道某個提交對象的校驗和(通過git log獲?。?。
補打Tag
$ git tag -a v0.1.1 9fbc3d0
Tag推送到服務器
通常的git push不會將Tag對象提交到git服務器,我們需要進行顯式的操作:
$ git push origin v0.1.2 # 將v0.1.2 Tag提交到git服務器
$ git push origin –-tags # 將本地所有Tag一次性提交到git服務器
注意:如果想看之前某個Tag狀態下的文件,可以這樣操作
1.git tag 查看當前分支下的Tag
2.git checkout v0.21 此時會指向打v0.21 Tag時的代碼狀態,(但現在處于一個空的分支上)
如何使用已創建的tag
目前我們所有的Git項目,在封版后,都會打個tag來標記版本。?
有時候,當我們封版后,會發現一些嚴重的bug,不得不修改,但是這個時候,我們已經開始新版本的開發了,這時回退到tag,修改封版時候的代碼就很有必要了
首先明確兩個概念:?
tag:你可以理解為一個代碼的快照,它記錄的是某個時刻的代碼,你可以獲取tag,但是不能編輯tag的代碼?
branch:分支,這個無需多解釋了
android studio創建tag是有可視化界面來操作的,但是使用tag沒有,你需要用到命令行。?
使用已創建的tag,你需要:?
找到這個tag,并把你本地代碼的head移到這個tag上:git checkout tag_name.?
這時候 git 可能會提示你當前處于一個“detached HEAD” 狀態,因為 tag 相當于是一個快照,是不能更改它的代碼的。?
如果要在 tag 代碼的基礎上做修改,你需要創建一個branch:git checkout -b branch_name tag_name,其中的tag_name可省略
然后剩下的就跟我們在master上操作一樣了,只不過你是操作的另外一個branch