1. 程式人生 > 其它 >測試開發CICD——Git——window上安裝git——標籤

測試開發CICD——Git——window上安裝git——標籤

Git 標籤

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

比如說,我們想為我們的 runoob 專案釋出一個"1.0"版本。 我們可以用 git tag -a v1.0 命令給最新一次提交打上(HEAD)"v1.0"的標籤。

-a 選項意為"建立一個帶註解的標籤"。

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

$ git tag -a v1.0

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

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

*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the runoob.php
* | c68142b 修改程式碼
|/  
* c1501a2 removed test.txtadd runoob.php
* 3e92c19 add test.txt
* 3b58100 第一次版本提交

如果我們忘了給某個提交打標籤,又將它釋出了,我們可以給它追加標籤。

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

$ git tag -a v0.9 85fc7e7
$ git log --oneline --decorate --graph
*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the runoob.php
* | c68142b 修改程式碼
|/  
* c1501a2 removed test.txtadd runoob.php
* 3e92c19 add test.txt
* 3b58100 (tag: v0.9) 第一次版本提交

如果我們要檢視所有標籤可以使用以下命令:

$ git tag
v0.9
v1.0

指定標籤資訊命令:

git tag -a <tagname> -m "runoob.com標籤"

PGP簽名標籤命令:

git tag -s <tagname> -m "runoob.com標籤"

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.0
    v1.1

    4 刪除標籤

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

    5 檢視此版本所修改的內容

    [root@Git git]# git show v1.0
    commit 91388f0883903ac9014e006611944f6688170ef4
    Author: "syaving" <"[email protected]">
    Date: Fri Dec 16 02:32:05 2016 +0800
    commit 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 oneline
    91388f0 commit dir
    e435fe8 add readme
    2525062 add readme