Git標籤管理

來源:互聯網
上載者:User

標籤:

發布一個版本時,我們通常會在版本庫中打上一個標籤,這樣,就唯一確定了打標籤時刻的版本了,將來無論什麼時候,取某個標籤的版本,就是

把那個打標籤的時刻的曆史版本取出來,所以,標籤也是版本庫的一個快照,Git的標籤雖然是版本庫的快照,但其實它就是指向某個commit的指標

(跟分支很像,但是分支可以移動,標籤不能移動),所以建立和刪除一個標籤都是在一瞬間完成的。

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

輸入git tag name 就可以打一個新的標籤:

$ git tag v1.0

可以用命令git tag 查看所有的標籤:

$ git tag
v1.0

預設標籤是打在最新提交的commit上的。有時候,如果忘記打標籤,那怎麼辦?

方法就是找到曆史提交的commit id ,然後打上就可以了

$ git log --pretty=oneline --abbrev-commit
dbfc0ee merge bug fix 119
b4d16ef bug 119 had fix
8e64728 merge with no-ff
4f4f23a dev commit
f3d8f1e branch merge
4bb4c5a master branch merge test
cccee34 newbranch first commit
0d0bbca dev first commit
d5aea29 master first commit
023ee21 Initial commit

比如要對“branch merge”這次提交打上標籤,它對應的commit id是"f3d8f1e",敲入命令:

$ git tag v0.9 f3d8f1e

 

查看下所有的標籤:

[email protected] MINGW32 /c/gitskill (master)
$ git tag
v0.9
v1.0

注意:標籤不是按照時間順序列出的,而是按照字母的順序列出的,可以用git show tagname查看標籤資訊:

$ git show v1.0
commit dbfc0eebcb89072cf76cdda1eccea37c8b22db73
Merge: 8e64728 b4d16ef
Author: mars <[email protected]>
Date: Tue May 24 18:04:26 2016 +0800

merge bug fix 119

還可以建立帶有說明的標籤,用-a指定標籤名,-m指定解說文字:

[email protected] MINGW32 /c/gitskill (master)
$ git tag -a v0.1 -m "version 0.1 released" cccee34

[email protected] MINGW32 /c/gitskill (master)
$ git tag
v0.1
v0.9
v1.0

[email protected] MINGW32 /c/gitskill (master)
$ git show v0.1
tag v0.1
Tagger: mars <[email protected]>
Date: Tue May 24 22:37:10 2016 +0800

version 0.1 released

commit cccee3487123b38970e76b95c43269661248c528
Author: mars <[email protected]>
Date: Tue May 24 15:40:12 2016 +0800

newbranch first commit

 

還可以通過-s用私密金鑰簽名一個標籤:

$ git tag -s v0.2 -m "signed version 0.2 released" 8e64728

簽名採用PGP簽名,因此,必須首先安裝gpg(GnuPG),如果沒有找到gpg,或者沒有gpg秘鑰對,就會報錯:

[email protected] MINGW32 /c/gitskill (master)
$ git tag -s v0.2 -m "signed version 0.2 released" 8e64728
gpg: WARNING: using insecure memory!
gpg: please see http://www.gnupg.org/documentation/faqs.html for more information
gpg: directory `/c/Users/LV/.gnupg‘ created
gpg: new configuration file `/c/Users/LV/.gnupg/gpg.conf‘ created
gpg: WARNING: options in `/c/Users/LV/.gnupg/gpg.conf‘ are not yet active during this run
gpg: keyring `/c/Users/LV/.gnupg/secring.gpg‘ created
gpg: keyring `/c/Users/LV/.gnupg/pubring.gpg‘ created
gpg: skipped "mars <[email protected]>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

產生GPG Keygpg --gen-key 按提示自己產生

產生簽名標籤:

$ git tag -u "Mars Lv" -s v0.2 -m "signed version 0.2 released" 8e64728

產生後的簽名標籤:

$ git show v0.2
tag v0.2
Tagger: mars <[email protected]>
Date: Tue May 24 23:40:01 2016 +0800

signed version 0.2 released
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAABAgAGBQJXRHXRAAoJEKqD3K/XnFBf/4wP/jy7oclw+74r5VsUTVJydoiT
T9URpqOMTE/S3GokphhXo6eNpY8HC1Yd3keyXSU10U74QdkwH92f62ZAlSZOOWVw
MbjkXGlk6sQdsiFCnihsnRtbxDg0PYf5nDtJFCIZXtmZOeJ/43UudzKxL+23nNLM
qfdoOpenYZoTUaGWSMxJTYRKIVICoD8awB5R1AA71Dysv7yEfaGZKk1cHX4Bu3Tj
a+kpRx6D0WWZLz4pj6NRvtVyeGtbWACtJJy/Rr3RhmhognlOxDAZecdJ3Jxs1qAt
tKOGiKp1xWsEwRCTnanArMPf5NAjvIMzgG8roV2NvRXPu26lknM1fb9Yb4/SNeE1
cLAvRj1PxzDIwQEEZdb0og3hPtrfaAEqwM8re70iB9iEI/1IyrV4L+/7Lp9ebONO
qNIuSHMxropkxAaQzgknWEVmSDWfydmY8M5oD8NGMMZOZpqhtfeGORP+5SRWkyg7
AoZSivx1wvzUH+2CzOjchf7Z+ZBqynNkB+CZxo1gtLOnrNkiiMnVlUIRYvRObgog
ExHvcAWBR9gajSHQDFNkvL8kJYkw6M5Rjg1Je6R+GZqfyrV/krKMjs+P74cuUCi0
D/b51gE48ZBu6lD8VKY5mw0jGlWM67A+n79OwFMNTK+f4eP+rUXYIXa2pDFE1zbj
oU7mTnHEkNUVQIeuyVLo
=4Ml3

 

[email protected] MINGW32 /c/gitskill (master)
$ git tag -v v0.2
object 8e647284624ec4ae666bebcdce784aa5db8d39d6
type commit
tag v0.2
tagger mars <[email protected]> 1464104401 +0800

signed version 0.2 released
gpg: WARNING: using insecure memory!
gpg: please see http://www.gnupg.org/documentation/faqs.html for more information
gpg: Signature made 2016年05月24日 23:40:01 using RSA key ID D79C505F
gpg: Good signature from ""Mars Lv" (GPG key for Mars) <[email protected]>"

 

-u, --local-user <key-id> 使用另一個Key簽名此tag,“Mars Lv”是我產生的key-id



Git標籤管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.