git 打標簽並推送tag到托管服務器


我們常常在代碼封板時,使用git 創建一個tag ,這樣一個不可修改的歷史代碼版本就像被我們封存起來一樣,不論是運維發布拉取,或者以后的代碼版本管理,都是十分方便的.

 

首先我們了解下 git 的 tag 功能:

git 下打標簽其實有2種情況

(1): 輕量級的

它其實是一個獨立的分支,或者說是一個不可變的分支.指向特定提交對象的引用.

 

(2):帶附注的

實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和信息,包含着標簽的名字,標簽說明,標簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗證,電子郵件地址和日期,一般我們都建議使用含附注型的標簽,以便保留相關信息.

 

所以我們推薦使用第二種標簽形式.

 

創建標簽:

1
 zhangzhi@moke:~/code/demo$git tag -a V1.2 -m 'WebSite version 1.2'

上面的命令我們成功創建了本地一個版本 V1.2 ,並且添加了附注信息 'WebSite version 1.2' 

 

查看標簽:

1
2
3
4
zhangzhi@moke:~/code/demo$ git tag
V1.0
V1.1
V1.2

 

我們看到本地有3個標簽,最下面的 V1.2 就是剛才提交的,但是沒有顯示出來我們附注信息.

要顯示附注信息,我們需要用 show 指令來查看.

1
2
3
4
5
6
7
8
9
10
11
12
13
zhangzhi@moke:~/code/demo$ git show V1.2
tag V1.2
Tagger: zhangzhi <zzhi.net@gmail.com>
Date:   Wed Jul 21 18:42:35 2015 +0800
 
WebSite version 1.2
 
commit 853cecc248756d0189d2a328dc22fa6781a65265
Merge: 1f23b2b 00cfb5b
Author: zhangzhi <zzhi.net@gmail.com>
Date:   Wed Jul 21 18:38:36 2015 +0800
 
     Merge branch  'master'  into  test

上面顯示出來了 V1.2 標簽的所有提交信息.

 

但是目前這個標簽僅僅是提交到了本地git倉庫.如何同步到遠程代碼庫

tag 遠程推送:

1
zhangzhi@moke:~/code/demo$git push origin --tags

這樣我們就把本地版本推送到了遠程代碼倉庫.

 

如果剛剛同步上去,你缺發現一個致命bug ,需要重新打版本,現在還為時不晚.

 

刪除標簽:

1
zhangzhi@moke:~/code/demo$git tag -d V1.2

到這一步我們只是刪除了本地 V1.2的版本,可是線上V1.2的版本還是存在,如何辦?

這時我們可以推送的空的同名版本到線下,達到刪除線上版本的目標:

1
zhangzhi@moke:~/code/demo$git push origin :refs/tags/V1.2

這時本地和遠程的 V1.2 版本已經被我們移除掉.

 

如何獲取遠程版本:

1
zhangzhi@moke:~/code/demo$git fetch origin tag V1.2

這樣我們可以精准拉取指定的某一個版本.適用於運維同學部署指定版本.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM