Git系列筆記之五:標籤管理

當咱們須要提交一個軟件版本時,能夠往這個版本上打一個標籤,之後能夠按照某個標籤來取回某個版本的代碼,實際上標籤就是一個軟件版本的快照。html

標籤其實是一個指向某個commit的指針,跟分支很像,但分支能夠移動,而標籤卻不能。git

建立標籤

首先,咱們應該切換到須要打標籤的分支上github

git branch
* dev
  master
git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

而後,咱們能夠使用git tag v1.0這樣的命令來建立一個標籤3d

git tag v1.0

使用git tag命令來查看全部標籤指針

git tag

上面的操做是默認的,也就是當前最新的提交上,若是想要給歷史版本打上標籤,就必須找到歷史提交的commit idcode

git log --pretty=oneline --abbrev-commit 
4b2bea2 merge fix88 branch's modifyed
601da8d 在fix88分支上修復了一個bug
3d3cc43 merge with no-ff
a75a84c modifyed on dev branch
d057d79 conflict fixed
08ae6f3 modifyed on master branch
cec715d modifyed and commit on fea branch
8d4576f test on bra branch
62a6606 delete test.txt
96d9332 add test.txt
469e0de 這是我第二次修改,向index.html裏添加了一個p標籤並寫入內容
1fb9ecb 這是我第一次修改,向index.html裏添加了一個p標籤並寫入內容
a1a356d 新建index.html文件,這是第一次提交到倉庫

好比,咱們想要在第二次修改的地方打上標籤,那麼它對應的commit id就是 469e0de,下面來敲入命令:htm

git tag v0.1 469e0de

咱們再次使用git tag命令來查看標籤列表it

git tag
v0.1
v1.0

咱們能夠使用git show <tagname>命令來查看標籤信息ast

git show v0.1
commit 469e0dee7484aecadc303dea96aca3b05fcab718
Author: kaindy7633 <kaindy7633@gmail.com>
Date:   Wed Mar 16 15:28:47 2016 +0800

    這是我第二次修改,向index.html裏添加了一個p標籤並寫入內容

diff --git a/index.html b/index.html
index 00e3fba..de4f7cf 100644
--- a/index.html
+++ b/index.html
@@ -6,5 +6,6 @@
 
 <body>
   <p>這是我向這個HTML文件加入的第一個P標籤。</p>  
+  <p>這是我向這個HTML文件加入的第二個p標籤。</p>
 </body>
 </html>

咱們還能夠爲標籤打上一段說明,使用-a參數指定標籤名,-m參數指定標籤說明test

git tag -a v0.2 -m "add for fea branch" cec715d

繼續使用git show <tagname>查看

git show v0.2
tag v0.2
Tagger: kaindy7633 <kaindy7633@gmail.com>
Date:   Thu May 5 18:24:55 2016 +0800

add for fea branch

commit cec715de12320fe1169c083c722e572685750144
Author: kaindy7633 <kaindy7633@gmail.com>
Date:   Fri Mar 18 10:41:18 2016 +0800

    modifyed and commit on fea branch

diff --git a/index.html b/index.html
index bf6b036..b7720b4 100644
--- a/index.html
+++ b/index.html
@@ -8,5 +8,6 @@
   <p>這是我向這個HTML文件加入的第一個P標籤。</p>  
   <p>這是我向這個HTML文件加入的第二個p標籤。</p>
   <p>這條修改是在bra分支上進行的,添加了第三個p標籤</p>
+  <p>這條修改是在fea分支上進行的,添加了第四個p標籤</p>
 </body>
 </html>

操做標籤

若是標籤打錯了,也是能夠刪除的,標籤都是存儲在本地的

git tag -d v0.1
Deleted tag 'v0.1' (was 469e0de)

若是想要把本地標籤推送到遠程,能夠使用git push origin <tagname>命令

git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:kaindy7633/gitTest.git
 * [new tag]         v1.0 -> v1.0

或者,咱們能夠一次把全部未推送到遠程的標籤推送到遠程,使用命令git push origin --tags

git push origin --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 161 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:kaindy7633/gitTest.git
 * [new tag]         v0.2 -> v0.2

若是標籤已推送到遠程,而又要刪除,則會有點麻煩,先刪除本地標籤

git tag -d v0.2
Deleted tag 'v0.2' (was d6683cf)

而後從遠程刪除,命令也是使用push

git push origin :refs/tags/v0.2
Warning: Permanently added the RSA host key for IP address '192.30.252.120' to the list of known hosts.
To git@github.com:kaindy7633/gitTest.git
 - [deleted]         v0.2
相關文章
相關標籤/搜索