简介

Git可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。

新建标签

假如说,我们某个应用经过一段时间的开发,完成了某个功能,现在需要往线上发布。我们可以先将开发代码合并到master,然后对当前的master打一个标签,来标识当前的发布版本。假如说就叫v1.0:

# 将当前代码完成提交
yanwei@ubuntu:~/git_test$ git add *
yanwei@ubuntu:~/git_test$ git commit -m "v1.0最后一次提交"
[master c169872] v1.0最后一次提交
2 files changed, 1 insertion(+)
create mode 100644 new.txt
yanwei@ubuntu:~/git_test$ git status
位于分支 master
无文件要提交,干净的工作区 # 创建一个v1.0的tag
yanwei@ubuntu:~/git_test$ git tag v1.0 # 查看所有的tag
yanwei@ubuntu:~/git_test$ git tag
v1.0 # 还可以通过如下方式查看指定的标签:
yanwei@ubuntu:~/git_test$ git tag -l "v1.*"
v1.0

在上面的示例中,我们看到有了一个v1.0的tag,可是这个tag没有任何的描述信息,也不知道具体是干嘛的。这个时候,我们可以在打tag的时候, 添加一些详细的信息:

# -a指定标签为含注释的标签,-m指定注释
yanwei@ubuntu:~/git_test$ git tag -a v1.1 -m "v1.1版本,啥都没改"

查看标签详细信息

如果要查看一个标签的详细信息,可以使用如下方式:

yanwei@ubuntu:~/git_test$ git show v1.1
tag v1.1
Tagger: yanwei <yanwei@douyu.tv>
Date: Mon Jul 16 19:07:24 2018 +0800 v1.1版本,啥都没改 commit c16987225db5f8ff65c7ff858eff4a75992f61dd (HEAD -> master, tag: v1.1, tag: v1.0)
Author: yanwei <yanwei@douyu.tv>
Date: Mon Jul 16 19:01:51 2018 +0800 v1.0最后一次提交 diff --git a/code.txt b/code.txt
index e064e4c..8f8a0e7 100644
--- a/code.txt
+++ b/code.txt
@@ -5,3 +5,4 @@ this is the forth line
this is the master branch
this is dev branch
this is dev branch new line
+this line for bug
diff --git a/new.txt b/new.txt
new file mode 100644
index 0000000..e69de29

切换标签

切换标签的操作与切换分支的命令相同:

git checkout [tagname]

后期添加标签

在一些应用场景中,我们一个版本发布之后,并没有为其添加标签,后期为了规范化管理,回过头来,想对那些版本添加标签,可以使用如下的操作方式:

# 使用git log列出一些历史版本信息:
yanwei@ubuntu:~/git_test$ git log --oneline
c169872 (HEAD -> master, tag: v1.1, tag: v1.0) v1.0最后一次提交
d69c612 合并bug分支
67de5f6 修复bug
ea9a7d5 merge with no-ff
b89266d (dev) dev branch another commit
6c1828d 解决冲突
2015000 master new commit
187dee6 dev first commit
0a96a0f forth commit
e4fb2aa third commit
227ecaa second commit
d66bdc0 first commit #指定为dev first commit这个版本打一个标签:
git tag -a v1.2 187dee6

将标签推送到远端仓库

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行git push origin [tagname] 即可:

git push origin v1.1

Git4:Git标签的更多相关文章

  1. Git标签和别名管理

    一.Git标签管理 标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态,也可以随时恢复到该状态 例如给master打一个v1.0的标签 先切换到master分支上去git checkou ...

  2. git标签

    git标签 如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签.-a 选项意为"创建一个带注解的标签". 添加标签命令: $ gi ...

  3. git初体验(四)git标签

    1.git 标题(tag) 关于git标签的描述,参考这里 2.标题管理 创建: 切换到需要打标签的分支上,如: git checkout master git tag v1.0 # 默认标签是打在最 ...

  4. Git标签管理

    一般我们发布一个新版本到线上服务器时都会在版本库中打一个标签,这时就确定了某个版本将发布到线上.我们可以随时可以查看这个打标签的版本,也就 是说标签其实呢,就是版本库中一个快照.简单说标签就是指向某个 ...

  5. Git-Runoob:Git 标签

    ylbtech-Git-Runoob:Git 标签 1.返回顶部 1. Git 标签 如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签. 比如说,我 ...

  6. Git应用详解第八讲:Git标签、别名与Git gc

    前言 前情提要:Git应用详解第七讲:Git refspec与远程分支的重要操作 这一节主要介绍Git标签.别名与Git的垃圾回收机制. 一.Git标签(tag) 1.标签的实质 标签与分支十分相似, ...

  7. 【第九篇】- Git 标签之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git 标签 如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签. 比如说,我们想为我们的 xxx 项目发布一个"1.0"版本. ...

  8. 创建git标签【转】

    转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137695175857 ...

  9. Git 标签操作

    允许有意义的名称到一个特定的版本库中的标签操作.Tom 决定标记他们的项目代码,以便他们以后可以更容易访问. 创建标签 让我们标记当前HEAD使用git tag命令.他提供的标记名称前加上-a选项,使 ...

随机推荐

  1. “Hello World!”Final发布文案加美工

    文案: 大家好,我们是“Hello World!”团队,本次我将向大家简要介绍一下空天猎的final发布,在空天猎final发布中,我主要从以下两个方面向大家进行介绍,第一个方面是增加了敌方的boss ...

  2. 20135337朱荟潼Java实验报告二

    20135337朱荟潼 实验二 Java面向对象程序设计 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L ...

  3. 项目Beta冲刺(团队)随笔集

    凡事预则立 项目Beta冲刺准备 第一天 项目Beta冲刺(团队)第一天 第二天 项目Beta冲刺(团队)第二天 第三天 项目Beta冲刺(团队)第三天 第四天 项目Beta冲刺(团队)第四天 第五天 ...

  4. 第三次作业---excel导入数据库及显示(2)

    发现第一次做的功能有点复杂,不能理解.而且第一次的想法是在页面上上传文件,连接并导入到数据库,并在页面上显示.后来才看到要求是直接在本地将数据导入数据库就行了,然后显示.所以才出现了一堆看不懂也解决不 ...

  5. 解决tomcat登录需要给角色授权

    1:编辑/usr/local/tomcat/conf/tomcat-users.xml文件,在没有注释的内容中添加: <role rolename="manager-gui" ...

  6. vue开发完成后打包后图片路径不对

    用vue做了一个小的移动端项目,从头到尾做下来,感觉自己好多东西都没弄清楚过.也学到了很多,已整理笔记在自己电脑上,但是比较零散,空了再来仔细整理整理. 于是,上周五模拟好数据(接口还未写),准备打包 ...

  7. sqlserver实现树形结构递归查询(无限极分类)

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...

  8. 动态语句SQL语句写法

    /*************************************************************************************************** ...

  9. Robot Framework 教程 (6) - 使用条件表达式

    本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...

  10. mysql数据优化--数据库结构的优化

    1,比如存时间类型的就使用int类型   其中mysql的两个函数可以拿来使用 unix_timestamp 将时间日期转化为时间戳