最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Git標簽管理

 更新時間:2017年04月18日 09:29:59   作者:小火柴的藍色理想  
本篇文章主要介紹了Git標簽管理的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧

前面的話

發(fā)布一個版本時,我們通常先在版本庫中打一個標簽(tag)。這樣,就唯一確定了打標簽時刻的版本。將來無論什么時候,取某個標簽的版本,就是把那個打標簽的時刻的歷史版本取出來。所以,標簽也是版本庫的一個快照,實質(zhì)上它就是指向某個commit的指針。所以,創(chuàng)建和刪除標簽都是瞬間完成的。簡而言之,標簽tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。本文將詳細介紹Git標簽管理

創(chuàng)建標簽

在Git中打標簽非常簡單,首先,切換到需要打標簽的分支上

然后,敲命令git tag <name>就可以打一個新標簽

可以用命令git tag查看所有標簽

默認標簽是打在最新提交的commit上的。有時候,如果忘了打標簽怎么辦呢?方法是找到歷史提交的commit id,然后打上就可以了

比方說要對create b.txt這次提交打標簽,它對應(yīng)的commit id是7ec9296,敲入命令:

再用命令git tag查看標簽,注意,標簽不是按時間順序列出,而是按字母排序的

可以用git show <tagname>查看標簽信息

附注標簽

實際上,Git使用的標簽有兩種類型:輕量級的(lightweight)和含附注的(annotated)。上面介紹的就是輕量級標簽,輕量級標簽就像是個不會變化的分支,實際上它就是個指向特定提交對象的引用。而含附注標簽,實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和信息,包含著標簽的名字,電子郵件地址和日期,以及標簽說明,標簽本身也允許使用GNU Privacy Guard(GPG)來簽署或驗證。一般我們都建議使用含附注型的標簽,以便保留相關(guān)信息;當然,如果只是臨時性加注標簽,或者不需要旁注額外信息,用輕量級標簽也沒問題

創(chuàng)建一個含附注類型的標簽非常簡單,用-a(取annotated的首字母,中文意思為注釋)指定標簽名字即可,而-m選項則指定了對應(yīng)的標簽說明,Git會將此說明一同保存在標簽對象中。如果沒有給出該選項,Git會啟動文本編輯軟件供你輸入標簽說明

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

我們可以看到在提交對象信息上面,列出了此標簽的提交者和提交時間,以及相應(yīng)的標簽說明

簽署標簽

如果有自己的私鑰,還可以用GPG來簽署標簽,只需要把之前的-a改為-s(取signed的首字母,中文意思為有符號的)即可

$ git tag -s v0.2 -m 'signed version 0.2 released'

簽名采用PGP簽名,因此,必須首先安裝gpg(GnuPG),如果沒有找到gpg,或者沒有g(shù)pg密鑰對,就會報錯

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

$ git show v0.2
tag v0.2
Tagger: Michael Liao <askxuefeng@gmail.com>
Date: Mon Aug 26 07:28:33 2013 +0800

signed version 0.2 released
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (Darwin)

iQEcBAABAgAGBQJSGpMhAAoJEPUxHyDAhBpT4QQIAKeHfR3bo...
-----END PGP SIGNATURE-----

commit fec145accd63cdc9ed95a2f557ea0658a2a6537f
Author: Michael Liao <askxuefeng@gmail.com>
Date: Thu Aug 22 10:37:30 2013 +0800

branch test

用PGP簽名的標簽是不可偽造的,因為可以驗證PGP簽名

可以使用git tag -v [tagname] (取verify的首字母,中文意思為核實)的方式驗證已經(jīng)簽署的標簽。此命令會調(diào)用GPG來驗證簽名,所以你需要有簽署者的公鑰,存放在keyring中,才能驗證

$ git tag -v v1.4.2.1
object 883653babd8ee7ea23e6a5c392bb739348b1eb61
type commit
tag v1.4.2.1
tagger Junio C Hamano <junkio@cox.net> 1158138501 -0700

GIT 1.4.2.1

Minor fixes since 1.4.2, including git-mv and git-http with alternates.
gpg: Signature made Wed Sep 13 02:08:25 2006 PDT using DSA key ID F3119B9A
gpg: Good signature from "Junio C Hamano <junkio@cox.net>"
gpg:     aka "[jpeg image of size 1513]"
Primary key fingerprint: 3565 2A26 2040 E066 C9A7 4A7D C0C6 D9A4 F311 9B9A

若是沒有簽署者的公鑰,會報告類似下面這樣的錯誤:

gpg: Signature made Wed Sep 13 02:08:25 2006 PDT using DSA key ID F3119B9A
gpg: Can't check signature: public key not found
error: could not verify the tag 'v1.4.2.1'

操作標簽

如果標簽打錯了,也可以刪除

$ git tag -d <tagname>

因為創(chuàng)建的標簽都只存儲在本地,不會自動推送到遠程。所以,打錯的標簽可以在本地安全刪除。

默認情況下,git push并不會把標簽傳送到遠端服務(wù)器上,只有通過顯式命令才能推送標簽到遠端倉庫

$ git push origin <tagname>

或者,一次性推送全部尚未推送到遠程的本地標簽

$ git push origin --tags

如果標簽已經(jīng)推送到遠程,要刪除遠程標簽就麻煩一點,先從本地刪除

然后,從遠程刪除。刪除命令也是push,但是格式如下

最后一個問題,如何查看發(fā)送到遠程的標簽?zāi)兀?/p>

點擊Github項目中的release

即可看到遠程標簽的信息

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

最新評論

钟祥市| 宜阳县| 都安| 赤城县| 孝昌县| 建昌县| 德化县| 哈巴河县| 偏关县| 雷山县| 友谊县| 平泉县| 龙岩市| 秦安县| 台南县| 都昌县| 黑山县| 建湖县| 瓮安县| 开江县| 保定市| 金沙县| 龙游县| 高台县| 新沂市| 丹凤县| 华池县| 广昌县| 观塘区| 屏边| 攀枝花市| 三穗县| 金秀| 江安县| 南汇区| 万盛区| 尼木县| 勃利县| 新竹县| 贡觉县| 宁夏|