2016-10-13 Git 基礎(chǔ)(六) - 打標簽

像其他版本控制系統(tǒng)(VCS)一樣,Git 可以給歷史中的某一個提交打上標簽,以示重要。 比較有代表性的是人們會使用這個功能來標記發(fā)布結(jié)點

情形一: 列出標簽

命令:

  • git tag 列出tag
  • git tag -l "v0.0.*" 搜索v0.0系列的tag
?  git_test git:(master) git tag -a v0.1.0 -m "測試標簽"
?  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
?  git_test git:(master) git tag -l "v0.0.*"
v0.0.1-rc0

情形二: 創(chuàng)建標簽

Git 使用兩種主要類型的標簽:輕量標簽(lightweight)與附注標簽(annotated)。

一個輕量標簽很像一個不會改變的分支 - 它只是一個特定提交的引用。

然而,附注標簽是存儲在 Git 數(shù)據(jù)庫中的一個完整對象。 它們是可以被校驗的;其中包含打標簽者的名字、電子郵件地址、日期時間;還有一個標簽信息;并且可以使用 GNU Privacy Guard (GPG)簽名與驗證。 通常建議創(chuàng)建附注標簽,這樣你可以擁有以上所有信息;但是如果你只是想用一個臨時的標簽,或者因為某些原因不想要保存那些信息,輕量標簽也是可用的。

創(chuàng)建附注標簽

?  git_test git:(master) git tag -a v0.1.1 -m "測試標簽"
?  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1

查看標簽信息與對應的提交信息

?  git_test git:(master) git show v0.1.1
tag v0.1.1
Tagger: augustine <cto@5dcto.com>
Date:   Thu Oct 13 16:19:09 2016 +0800

測試標簽

commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine <cto@5dcto.com>
Date:   Wed Oct 12 14:59:30 2016 +0800

    test

diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2

創(chuàng)建輕量標簽

?  git_test git:(master) git tag v1.0.1
?  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1
v1.0.1

查看輕量標簽

commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine <cto@5dcto.com>
Date:   Wed Oct 12 14:59:30 2016 +0800

    test

diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2

情形三: 后期打標簽

可以對過去的提交打標簽。

?  git_test git:(master) git log --pretty=oneline
b6199c8df83ccb70a940d90c9621bcc43d025f1e test
7dc31d13d7d48a7e1cd93f31668bd50beb679889 測試 ament
e87932d0c46461dcf77fd75feef2a3c7b28e4fe4 renamed
10ff61af1a6aea266a423222decc0dfc4be67ad8 rename
d446522b785cc96b6161b91f35f0362eaffde7d4 rename
782be0944b2e3b086fc13604dfece14b7512773f test
4021312cdb038da674f6a85a5a3b358f012209dc save last commit

?  git_test git:(master) git tag -a v0.0.1-rc00 e87932d0c46461dcf77fd75feef2a3c7b28e4fe4
  1 測試補打標簽
  2 # Write a message for tag:
  3 #   v0.0.1-rc00
  4 # Lines starting with '#' will be ignored.
?  git_test git:(master) git tag
v0.0.1-rc0
v0.0.1-rc00
v0.1.0
v0.1.1
v1.0.1

情形四: 共享標簽

默認情況下,git push 命令并不會傳送標簽到遠程倉庫服務(wù)器上。 在創(chuàng)建完標簽后你必須顯式地推送標簽到共享服務(wù)器上。 這個過程就像共享遠程分支一樣 - 你可以運行 git push origin [tagname]。

如果想要一次性推送很多標簽,也可以使用帶有 --tags 選項的 git push 命令。 這將會把所有不在遠程倉庫服務(wù)器上的標簽全部傳送到那里。

?  git_test git:(master) git push origin v0.0.1-rc0
Username for 'https://github.com': xuguotao1984@163.com
Password for 'https://xuguotao1984@163.com@github.com':
Counting objects: 1, done.
Writing objects: 100% (1/1), 158 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/xuguotao/git_test.git
 * [new tag]         v0.0.1-rc0 -> v0.0.1-rc0
 
?  git_test git:(master) git push --tag
Username for 'https://github.com': xuguotao1984@163.com
Password for 'https://xuguotao1984@163.com@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 375 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/xuguotao/git_test.git
 * [new tag]         v0.0.1-rc00 -> v0.0.1-rc00
 * [new tag]         v0.1.0 -> v0.1.0
 * [new tag]         v0.1.1 -> v0.1.1
 * [new tag]         v1.0.1 -> v1.0.1

情形五: 檢出標簽

在 Git 中你并不能真的檢出一個標簽,因為它們并不能像分支一樣來回移動。 如果你想要工作目錄與倉庫中特定的標簽版本完全一樣,可以使用 git checkout -b [branchname] [tagname] 在特定的標簽上創(chuàng)建一個新分支

?  git_test git:(master) git checkout -b v0.1.1
Switched to a new branch 'v0.1.1'
?  git_test git:(v0.1.1) gst
On branch v0.1.1
nothing to commit, working directory clean
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git是目前最流行的版本管理系統(tǒng),也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,990評論 1 17
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,848評論 4 54
  • 關(guān)于對孩子數(shù)感的培養(yǎng)仔細想想也已經(jīng)進行了有大半個年頭了。一直以來關(guān)于孩子的點滴成長我對孩子的記錄也總是隔三差...
    numump閱讀 191評論 0 1
  • 極力推薦大家去看一看,雖然我沒有大家說的那樣,看完就非常想找一個女朋友,我覺得這部電影很走心,所有的細節(jié)處理的非常...
    啦啦啦啦啦128閱讀 550評論 0 1
  • 主題:201610城東共同體新教師 地點城東七(3) 時間1028 引課看國旗找位置 為什么國旗能找位置 國界線 ...
    一方一凈土閱讀 337評論 0 0

友情鏈接更多精彩內(nèi)容