六、Git命令篇:打標(biāo)簽tag的運(yùn)用

打標(biāo)簽

?同大多數(shù) VCS 一樣剥险,Git 也可以對某一時(shí)間點(diǎn)上的版本打上標(biāo)簽聪蘸。人們在發(fā)布某個(gè)軟件版本(比如 v1.0 等等)的時(shí)候,經(jīng)常這么做表制。本節(jié)我們一起來學(xué)習(xí)如何列出所有可用的標(biāo)簽健爬,如何新建標(biāo)簽,以及各種不同類型標(biāo)簽之間的差別么介。

列顯已有的標(biāo)簽

列出現(xiàn)有標(biāo)簽的命令非常簡單娜遵,直接運(yùn)行 git tag 即可:

$ git tag

v0.1

v1.3

顯示的標(biāo)簽按字母順序排列,所以標(biāo)簽的先后并不表示重要程度的輕重壤短。 我們可以用特定的搜索模式列出符合條件的標(biāo)簽设拟。在 Git 自身項(xiàng)目倉庫中,有著超過 240 個(gè)標(biāo)簽鸽扁,如果你只對 1.4.2 系列的版本感興趣蒜绽,可以運(yùn)行下面的命令:

$ git tag -l 'v1.4.2.*'

v1.4.2.1

v1.4.2.2

v1.4.2.3

v1.4.2.4

新建標(biāo)簽

Git 使用的標(biāo)簽有兩種類型:輕量級(jí)的(lightweight)和含附注的(annotated)。

輕量級(jí)標(biāo)簽就像是個(gè)不會(huì)變化的分支桶现,實(shí)際上它就是個(gè)指向特定提交對象的引用。

而含附注標(biāo)簽鼎姊,實(shí)際上是存儲(chǔ)在倉庫中的一個(gè)獨(dú)立對象骡和,它有自身的校驗(yàn)和信息,包含著標(biāo)簽的名字相寇,電子郵件地址和日期慰于,以及標(biāo)簽說明,標(biāo)簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗(yàn)證唤衫。一般我們都建議使用含附注型的標(biāo)簽婆赠,以便保留相關(guān)信息;當(dāng)然佳励,如果只是臨時(shí)性加注標(biāo)簽休里,或者不需要旁注額外信息蛆挫,用輕量級(jí)標(biāo)簽也沒問題。

含附注的標(biāo)簽創(chuàng)建一個(gè)含附注類型的標(biāo)簽非常簡單妙黍,用 -a (譯注:取 annotated 的首字母)指定標(biāo)簽名字即可:

$ git tag -a v1.4 -m 'my version 1.4'

$ git tag

v0.1

v1.3

v1.4

而 -m 選項(xiàng)則指定了對應(yīng)的標(biāo)簽說明悴侵,Git 會(huì)將此說明一同保存在標(biāo)簽對象中。如果沒有給出該選項(xiàng)拭嫁,Git 會(huì)啟動(dòng)文本編輯軟件供你輸入標(biāo)簽說明可免。可以使用 git show 命令查看相應(yīng)標(biāo)簽的版本信息做粤,并連同顯示打標(biāo)簽時(shí)的提交對象浇借。

$ git show v1.4

tag v1.4

Tagger: Scott Chacon

Date: Mon Feb 9 14:45:11 2009 -0800

my version 1.4

commit 15027957951b64cf874c3557a0f3547bd83b3ff6

Merge: 4a447f7... a6b4c97...

Author: Scott Chacon

Date: Sun Feb 8 19:02:46 2009 -0800

??????????????????????????????????????????????????? Merge branch 'experiment'

我們可以看到在提交對象信息上面,列出了此標(biāo)簽的提交者和提交時(shí)間怕品,以及相應(yīng)的標(biāo)簽說明逮刨。

簽署標(biāo)簽

如果你有自己的私鑰,還可以用 GPG 來簽署標(biāo)簽堵泽,只需要把之前的 -a 改為 -s (譯注: 取 signed 的首字母)即可:

$ git tag -s v1.5 -m 'my signed 1.5 tag'

You need a passphrase to unlock the secret key for

user: "Scott Chacon"

1024-bit DSA key, ID F721C45A, created 2009-02-09

現(xiàn)在再運(yùn)行 git show 會(huì)看到對應(yīng)的 GPG 簽名也附在其內(nèi)修己。

輕量級(jí)標(biāo)簽

輕量級(jí)標(biāo)簽實(shí)際上就是一個(gè)保存著對應(yīng)提交對象的校驗(yàn)和信息的文件。要?jiǎng)?chuàng)建這樣的標(biāo)簽迎罗,一個(gè) -a睬愤,-s 或 -m 選項(xiàng)都不用,直接給出標(biāo)簽名字即可:

$ git tag v1.4-lw

$ git tag

v0.1

v1.3

v1.4

v1.4-lw

v1.5

現(xiàn)在運(yùn)行 git show 查看此標(biāo)簽信息纹安,就只有相應(yīng)的提交對象摘要:

$ git show v1.4-lw

commit 15027957951b64cf874c3557a0f3547bd83b3ff6

Merge: 4a447f7... a6b4c97...

Author: Scott Chacon

Date: Sun Feb 8 19:02:46 2009 -0800

Merge branch 'experiment'

驗(yàn)證標(biāo)簽

可以使用 git tag -v [tag-name] (譯注:取 verify 的首字母)的方式驗(yàn)證已經(jīng)簽署的標(biāo)簽尤辱。此命令會(huì)調(diào)用 GPG 來驗(yàn)證簽名,所以你需要有簽署者的公鑰厢岂,存放在 keyring 中光督,才能驗(yàn)證

后期加注標(biāo)簽

只要在打標(biāo)簽的時(shí)候跟上對應(yīng)提交對象的校驗(yàn)和(或前幾位字符)即可:

$ git tag -a v1.2 9fceb02

分享標(biāo)簽

默認(rèn)情況下,git push 并不會(huì)把標(biāo)簽傳送到遠(yuǎn)端服務(wù)器上塔粒,只有通過顯式命令才能分享標(biāo)簽到遠(yuǎn)端倉庫结借。其命令格式如同推送分支,運(yùn)行 git push origin [tagname] 即可:

$ git push origin v1.5

Counting objects: 50, done.

Compressing objects: 100% (38/38), done.

Writing objects: 100% (44/44), 4.56 KiB, done.

Total 44 (delta 18), reused 8 (delta 1)

To git@github.com:schacon/simplegit.git

* [new tag] v1.5 -> v1.5

?如果要一次推送所有本地新增的標(biāo)簽上去卒茬,可以使用 --tags 選項(xiàng):

?$ git push origin --tags

如果打完標(biāo)簽想進(jìn)入這個(gè)標(biāo)簽版本怎么辦呢船老?

查看存在的tag

git tag -l

切換到某個(gè)tag

git checkout tag_name

列出所有tag的創(chuàng)建時(shí)間并排序

git for-each-ref--count=3--sort='-*authordate'--format='%(*authordate) %(*refname)'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市圃酵,隨后出現(xiàn)的幾起案子柳畔,更是在濱河造成了極大的恐慌,老刑警劉巖郭赐,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薪韩,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)俘陷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門罗捎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人岭洲,你說我怎么就攤上這事宛逗。” “怎么了盾剩?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵雷激,是天一觀的道長。 經(jīng)常有香客問我告私,道長屎暇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任驻粟,我火速辦了婚禮根悼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜀撑。我一直安慰自己挤巡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布酷麦。 她就那樣靜靜地躺著矿卑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沃饶。 梳的紋絲不亂的頭發(fā)上母廷,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音糊肤,去河邊找鬼琴昆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛馆揉,可吹牛的內(nèi)容都是我干的业舍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼把介,長吁一口氣:“原來是場噩夢啊……” “哼勤讽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拗踢,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎向臀,沒想到半個(gè)月后巢墅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年君纫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驯遇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蓄髓,死狀恐怖叉庐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情会喝,我是刑警寧澤陡叠,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站肢执,受9級(jí)特大地震影響枉阵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜预茄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一兴溜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耻陕,春花似錦拙徽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梧田,卻和暖如春淳蔼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裁眯。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工鹉梨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人穿稳。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓存皂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逢艘。 傳聞我的和親對象是個(gè)殘疾皇子旦袋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來它改。這樣一來疤孕,任何一處協(xié)同...
    __silhouette閱讀 15,899評論 5 147
  • 打標(biāo)簽 同大多數(shù) VCS 一樣,Git 也可以對某一時(shí)間點(diǎn)上的版本打上標(biāo)簽央拖。人們在發(fā)布某個(gè)軟件版本(比如 v1.0...
    三也視界閱讀 23,789評論 0 5
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照祭阀,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,929評論 0 11
  • 終于又可以開始敲擊鍵盤了鹉戚。突然不知道寫些什么? 豪言壯語在此時(shí)都已如蒼白無力的軍令狀专控,而唯有臥薪嘗膽地付諸行...
    曉蘭sally閱讀 157評論 0 0
  • 不幸的是抹凳,被動(dòng)學(xué)習(xí)有嚴(yán)重的缺陷。它讓我們傾向非批判的接受被告知的事伦腐,甚至當(dāng)被告知的只是一些小道消息和傳聞時(shí)也...
    鄧潔兒閱讀 198評論 0 1