操作標籤
發布乙個版本時,通常先在版本庫中打乙個標籤(tag),這樣,就唯一確定了打標籤時刻的版本。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。所以,標籤也是版本庫的乙個快照。
git的標籤是版本庫的快照,但其實它就是指向某個commit的指標。分支可以移動,標籤不能移動,所以,建立和刪除標籤都是瞬間完成的。
tag就是乙個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
首先,切換到需要打標籤的分支上:
git checkout master
輸出如下:
switched to branch 'master'
git tag
就可以打乙個新標籤:
git tag v1.0
用命令git tag
檢視所有標籤:
git tag
輸出如下:
v1.0
預設標籤是打在最新提交的commit上的。有時候,如果忘了打標籤之前應該打的標籤沒有打,怎麼辦?
方法是找到歷史提交的commit id,然後打上就可以了:
git log --pretty=oneline --abbrev-commit
輸出如下:
8ca4349 (head -> master, tag: v1.0) commit readme
77f9ca7 (origin/master, dev) conflict fix
8cf7203 merge with no-ff
e18b34d add merge
1d26147 conflict fixed
5f74c5d & ******
ab01e68 and ******
d03e35c branch test
ee37c08 wrote a readme.txt
比方說要對conflict fix
這次提交打標籤,它對應的commit id是77f9ca7
,敲入命令:
git tag v0.9 77f9ca7
標籤不是按時間順序列出,而是按字母排序的。可以用git show
檢視標籤資訊:
git show v0.9
可以建立帶有說明的標籤,用-a
指定標籤名,-m
指定說明文字:
git tag -a v0.1 -m "version 0.1 released" 77f9ca7
注意:標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。
如果標籤打錯了,也可以刪除:
git tag -d v0.1
輸出如下:
deleted tag 'v0.1' (was 23a7ce9)
因為建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除。
如果要推送某個標籤到遠端,使用命令git push origin
:
git push origin v1.0
或者,一次性推送全部尚未推送到遠端的本地標籤:
git push origin --tags
如果標籤已經推送到遠端,要刪除遠端標籤就麻煩一點,先從本地刪除:
git tag -d v0.9
然後從遠端刪除。刪除命令也是push,格式如下:
git push origin :ref/tags/v0.9
Git 廖雪峰 學習筆記
目錄 git工作區域 git初始化及倉庫建立和操作 初始化新的git倉庫 1.新建資料夾 2.在檔案內初始化git 如何將本地倉庫同步到git 遠端倉庫 1.關聯遠端庫 2.第一次推送master分支的所有內容 3.每次本地提交後,推送最新修改 轉殖 分支管理 1.建立與合併分支 2.解決衝突 3....
git 廖雪峰學習筆記
git的誕生 linus堅決反對cvs和svn等集中式版本控制系統 因為速度慢且需要聯網 bitmover公司授權linux社群商業軟體bitkeeper免費使用權 linus社群牛人試圖破解bitkeeper的協議被bitmover公司發現 bitmover公司收回linux社群bitkeeper...
廖雪峰 Git筆記
git簡介 分布式版本控制系統 集中式vs分布式 集中式版本控制系統,版本庫集中存放在 伺服器,必須要聯網才能工作,沒有歷史版本庫。分布式版本控制系統,不需要 伺服器 每個開發人員電腦上都有乙個完整的版本庫。分布式優勢 安全性更高,無需聯網,若 伺服器 故障,任何乙個其他開發者本地都有最新的帶歷史記...