發布乙個版本時,我們通常先在版本庫中打乙個標籤,這樣建立了乙個索引快捷的指向某一次提交。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。其實它就是指向某個commit的指標,跟分支很像,但是分支可以移動,標籤不能移動。
git tag #檢視所有標籤
git tag
#加標籤
git log --pretty=oneline --abbrev-commit #找到歷史提交的commit id
git tag
#對某個commit打標籤
git tag -a v0.1 -m "version 0.1 released" 3628164
#還可以建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字
git tag -d
#刪除某個標籤
git push origin
#將某個標籤推送到遠端
git push origin --tags #一次性推送全部的標籤到遠端
git push origin :refs/tags/
#刪除遠端倉庫的標籤
git fetch origin tag
#拉取遠端倉庫的指定標籤的**
git branch
#根據標籤名建立分支
在push**到遠端倉庫時,不會推送標籤,所以需要我們主動推送標籤git push origin
git tag -a v1.0.0 -m "version 1.0.0 released"
git push origin v1.0.0
git tag -d v1.0.0 #刪除本地
git push origin :refs/tags/v1.0.0 #刪除遠端倉庫標籤
該章節**於梧桐那時雨,詳細步驟可到原blog檢視。如果線上版本遇到bug,需要緊急修復並發布,可是這個時候我們的**新功能已經開發了到一半了,不能回退,怎麼辦呢?這時候就可以通過tag標籤回退至線上版本進行修復。
根據我的實踐,調整了梧桐那時雨的操作步驟,主要是簡化新建分支的方式和推送標籤到遠端倉庫的時機
主要步驟如下:
根據tag拉取修復bug的分支fixbug
切換到fixbug分支,修改bug,發版本,打新標籤
手動推送標籤到遠端
合併fixbug分支到主幹上
#1
git tag #檢視所有標籤
git branch fixbug
# 根據tag新建分支
#2git checkout fixbug #切換至修復分支
... #修復bug...
git add a.txt
git commit -m "修復bug"
# 提交
git tag v2.0 #打標籤
#3git push origin --tags #推送所有標籤
git push origin v2.0 #推送指定標籤
#4git checkout master #先切換到主幹上
git merge fixbug #再合併修改bug的分支
... #合併分支
在分支上建立的tag,分支刪除後還存在嗎經過測試,tag並不屬於某乙個分支,所以在刪除分支時,在該分支上打的標籤依然存在,指向的是當前分支的上一次commit。
標籤更多的是一種指向某一次提交的快捷索引,所以雖然刪除了fixbug分支,但是還是可以通過git show ; git reset --hard commitid
回滾到某一次提交,對歷史版本進行再次修復。
當我們commit,並打上標籤後,不向遠端倉庫推送**,而是推送標籤。那麼在遠端倉庫的各分支中**不會發生任何的改變,但是在該標籤下卻能看到本地的上一次commit.
學習筆記 git之四 標籤管理
標籤是版本庫的乙個快照,方便以後查詢,其實標籤類似於提交commit,只不過更方便。1 執行語句 git tag v1.0預設打的標籤是打在最新提交的commit id 上,如果要打之前已經commit 上怎麼操作。2 第一檢視log找到對應的commit id git log pretty one...
Git學習筆記 標籤
git可以給某次提交打上標籤以示重要性,使用git tag列出所有標籤。git tag v1.0使用 l選項查詢標籤。git tag l v1 v1.0標籤分為輕量標籤和附註標籤,通常建議建立附註標籤,附註標籤包含打標籤者的名字 電子郵件位址 日期時間,標籤資訊,並且可以使用 gnu privacy...
Git學習筆記 標籤
標籤就是推送版本的別名,畢竟要用版本號太難記了,打上v1.0 v2.0這樣的標籤是不是賞心悅目多了呢。mark the current commit with a tag git tag 打標籤,預設標籤打在當前分支最新提交上。git tag 檢視所有標籤 git tag 將標籤打在特定提交上 gi...