当咱们须要提交一个软件版本时,能够往这个版本上打一个标签,之后能够按照某个标签来取回某个版本的代码,实际上标签就是一个软件版本的快照。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