文档章节

Git系列笔记之五:标签管理

阿振
 阿振
发布于 2016/05/05 18:28
字数 984
阅读 34
收藏 2

当我们需要提交一个软件版本时,可以往这个版本上打一个标签,以后可以按照某个标签来取回某个版本的代码,实际上标签就是一个软件版本的快照。

标签实际上是一个指向某个commit的指针,跟分支很像,但分支可以移动,而标签却不能。

创建标签

首先,我们应该切换到需要打标签的分支上

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

然后,我们可以使用git tag v1.0这样的命令来创建一个标签

git tag v1.0

使用git tag命令来查看所有标签

git tag

上面的操作是默认的,也就是当前最新的提交上,如果想要给历史版本打上标签,就必须找到历史提交的commit id

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,下面来敲入命令:

git tag v0.1 469e0de

我们再次使用git tag命令来查看标签列表

git tag
v0.1
v1.0

我们可以使用git show <tagname>命令来查看标签信息

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参数指定标签说明

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

© 著作权归作者所有

阿振
粉丝 10
博文 55
码字总数 58791
作品 0
成都
高级程序员
私信 提问
MyBatis学习笔记系列教程

【MyBatis学习笔记】系列之预备篇一:ant的下载与安装 【MyBatis学习笔记】系列之预备篇二:ant入门示例 【MyBatis学习笔记】系列之一:MyBatis入门示例 【MyBatis学习笔记】系列之二:MyBat...

HenrySun
2016/10/15
136
0
git文章列表

关于gitlab默认clone协议 Git实现从本地添加项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) Git 项目推荐 | Java 版微信普通号机器人 翻翻git之---...

d_watson
2016/04/20
27
0
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
40.1K
25
ZooKeeper教程资源收集(简介/原理/示例/解决方案)

菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...

easonjim
2017/09/05
0
0
MyBatis多对多保存示例——MyBatis学习笔记之十七

前几天有网友问到MyBatis多对多的问题,不过愧对网友厚爱的是,最近一直忙,直到现在才有时间处理此事。今天就先写一个多对多保存的示例,算是对这位网友的初步回应,以后会有更多相关的博文...

NashMaster2011
2013/08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
5
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部