git中的tag

git的tag是比较常用的一个特性,关于tag有人叫做标签,有人叫做里程碑,无所谓了。

Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)。本篇重要讨论如何使用轻量级标签,关于附注标签的使用,可以参考 这篇中文版的官方文档

创建标签

创建标签的命令非常简单

git tag 

下面的例子在当前的提交下创建一个名叫v.10的标签

git tag v1.0

检查标签

通过 git tag -l 列出本地所有的标签

$ git tag -l
v0.1
v1.0

有了这个标签列表,就可以看每个具体的标签对应的提交信息了

通过 git show 来检查标签

git show v1.0 
commit 0f7f90584bfa45f44547d623d48b9bfac21f1b1c (HEAD -> master, tag: v1.0, origin/master)
Author: zhudengkai 
Date:   Wed Apr 8 20:26:02 2020 +0800

    add b.txt

diff --git a/b.txt b/b.txt
new file mode 100644
index 0000000..e69de29

还可以通过 git log --decorate来查看标签

$ git log --decorate --oneline
0f7f905 (HEAD -> master, tag: v1.0, origin/master) add b.txt
2d19ca3 add a.txt

上面的--oneline的参数不是必须的,只是为了简化输出。

后期打标签

上面通过git tag 的方式,会直接把标签打到当前的提交上,但是当你需要对之前的提交进行打标签时,可以采用如下两种方式

第一种方式,checkout到指定提交,具体操作是

  1. 通过 git chexkout ,切换到想要打标签的提交
  2. 通过 git tag 在对应的提交上打标签
  3. 通过 git checkout ,再切换到你之前的分支上

第二种方式,使用git tag -a 命令,此时会调起vim编辑器,让输入一个提交消息。

两种方式对比的话,第二种方式再操作上比较简单,但第一种方式更加纯粹一些。由于我喜欢轻量级的标签,所以我更喜欢用第一种方式。

将标签推送到远程git仓库

通过 git push origin 可以将当前tag推送到远程仓库

下面的命令将 v1.0 这个tag推送到远程仓库

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

也可以通过下面的命令来将本地所有的标签一次性推送到远程仓库中

git push origin --tags

删除标签

删除本地标签

git tag -d 

删除远程标签

git push origin --delete 

你可能感兴趣的:(git基础专栏)