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