1. 程式人生 > >Git 標簽

Git 標簽

git

Git 標簽

如果你達到一個重要的階段,並希望永遠記住那個特別的提交快照,你可以使用 git tag 給它打上標簽。

比如說,我們想為我們的 w3cschoolcc 項目發布一個"1.0"版本。 我們可以用 git tag -a v1.0 命令給最新一次提交打上(HEAD)"v1.0"的標簽。

-a 選項意為"創建一個帶註解的標簽"。 不用 -a 選項也可以執行的,但它不會記錄這標簽是啥時候打的,誰打的,也不會讓你添加個標簽的註解。 我推薦一直創建帶註解的標簽。

$ git tag -a v1.0

當你執行 git tag -a 命令時,Git 會打開你的編輯器,讓你寫一句標簽註解,就像你給提交寫註解一樣。

現在,註意當我們執行 git log --decorate 時,我們可以看到我們的標簽了:

$ git log --oneline --decorate --graph*   88afe0e (HEAD, tag: v1.0, master) Merge branch 'change_site'|\  
| * d7e7346 (change_site) changed the site* | 14b4dca 新增加一行|/  * 556f0a0 removed test2.txt* 2e082b7 add test2.txt* 048598f add test.txt* 85fc7e7 test comment from w3cschool.cc

如果我們忘了給某個提交打標簽,又將它發布了,我們可以給它追加標簽。

例如,假設我們發布了提交 85fc7e7(上面實例最後一行),但是那時候忘了給它打標簽。 我們現在也可以:

$ git tag -a v0.9 85fc7e7$ git log --oneline --decorate --graph*   88afe0e (HEAD, tag: v1.0, master) Merge branch 'change_site'|\  
| * d7e7346 (change_site) changed the site* | 14b4dca 新增加一行|/  * 556f0a0 removed test2.txt* 2e082b7 add test2.txt* 048598f add test.txt* 85fc7e7 (tag: v0.9) test comment from w3cschool.cc

如果我們要查看所有標簽可以使用以下命令:

$ git tag
v0.9v1.0

指定標簽信息命令:

git tag -a <tagname> -m "w3cschool.cc標簽"

PGP簽名標簽命令:

git tag -s <tagname> -m "w3cschool.cc標簽"



筆記列表

  1. 1、標簽介紹

    發布一個版本時,我們通常先在版本庫中打一個標簽(tag),這樣就唯一確定了打標簽時刻的版本。將來無論什麽時候,取某個標簽的版本,就是把那個打標簽的時刻的歷史版本取出來。

    所以,標簽也是版本庫的一個快照。

    Git 的標簽雖然是版本庫的快照,但其實它就是指向某個 commit 的指針(跟分支很像對不對?但是分支可以移動,標簽不能移動),所以,創建和刪除標簽都是瞬間完成的。

    Git有commit,為什麽還要引入tag?

    "請把上周一的那個版本打包發布,commit號是6a5819e…"

    "一串亂七八糟的數字不好找!"

    如果換一個辦法:

    "請把上周一的那個版本打包發布,版本號是v1.2"

    "好的,按照tag v1.2查找commit就行!"

    所以,tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。

    同大多數 VCS 一樣,Git 也可以對某一時間點上的版本打上標簽。人們在發布某個軟件版本(比如 v1.0 等等)的時候,經常這麽做。

    本節我們一起來學習如何列出所有可用的標簽,如何新建標簽,以及各種不同類型標簽之間的差別。


    新建標簽


    Git 使用的標簽有兩種類型:輕量級的(lightweight)含附註的(annotated)

    輕量級標簽就像是個不會變化的分支,實際上它就是個指向特定提交對象的引用。

    而含附註標簽,實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和信息,包含著標簽的名字,電子郵件地址和日期,以及標簽說明,標簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗證。

    一般我們都建議使用含附註型的標簽,以便保留相關信息;

    當然,如果只是臨時性加註標簽,或者不需要旁註額外信息,用輕量級標簽也沒問題。


    2 創建標簽

    [root@Git git]# git tag v1.0

    3 查看已有標簽

    [root@Git git]# git tag
    v1.0[root@Git git]# git tag v1.1[root@Git git]# git tag
    v1.0v1.1

    4 刪除標簽

    [root@Git git]# git tag -d v1.1Deleted tag ‘v1.1’ (was 91388f0)[root@Git git]# git tag
    v1.0

    5 查看此版本所修改的內容

    [root@Git git]# git show v1.0commit 91388f0883903ac9014e006611944f6688170ef4Author: "syaving" <"[email protected]">Date: Fri Dec 16 02:32:05 2016 +0800commit dir
    diff –git a/readme b/readme
    index 7a3d711..bfecb47 100644— a/readme+++ b/readme@@ -1,2 +1,3 @@text
    hello git+use commit[root@Git git]# git log –oneline91388f0 commit dir
    e435fe8 add readme2525062 add readme


Git 標簽