我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的.
首先我们了解下 git 的 tag 功能:
git 下打标签其实有2种情况
(1): 轻量级的
它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用.
(2):带附注的
实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证,电子邮件地址和日期,一般我们都建议使用含附注型的标签,以便保留相关信息.
所以我们推荐使用第二种标签形式.
创建标签:
zhangzhi@moke:~/code/demo$git tag -a V1.2 -m 'WebSite version 1.2'
上面的命令我们成功创建了本地一个版本 V1.2 ,并且添加了附注信息 'WebSite version 1.2'
查看标签:
zhangzhi@moke:~/code/demo$ git tag
V1.0
V1.1
V1.2
我们看到本地有3个标签,最下面的 V1.2 就是刚才提交的,但是没有显示出来我们附注信息.
要显示附注信息,我们需要用 show 指令来查看.
zhangzhi@moke:~/code/demo$ git show V1.2
tag V1.2
Tagger: zhangzhi <zzhi.net@gmail.com>
Date: Wed Jul 21 18:42:35 2015 +0800 WebSite version 1.2 commit 853cecc248756d0189d2a328dc22fa6781a65265
Merge: 1f23b2b 00cfb5b
Author: zhangzhi <zzhi.net@gmail.com>
Date: Wed Jul 21 18:38:36 2015 +0800 Merge branch 'master' into test
上面显示出来了 V1.2 标签的所有提交信息.
但是目前这个标签仅仅是提交到了本地git仓库.如何同步到远程代码库
tag 远程推送:
zhangzhi@moke:~/code/demo$git push origin --tags
这样我们就把本地版本推送到了远程代码仓库.
如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.
删除标签:
zhangzhi@moke:~/code/demo$git tag -d V1.2
到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?
这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:
zhangzhi@moke:~/code/demo$git push origin :refs/tags/V1.2
这时本地和远程的 V1.2 版本已经被我们移除掉.
如何获取远程版本:
zhangzhi@moke:~/code/demo$git fetch origin tag V1.2
这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.
git 打标签并推送tag到托管服务器的更多相关文章
-
[Android Pro] git 打标签、推送tag到托管服务器、验证是否成功
reference to : http://www.cnblogs.com/ShaYeBlog/p/5576601.html 我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史 ...
-
git推送tag到远端服务器
git推送tag到远端服务器 默认情况下,git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库.1.push单个tag,命令格式为:git push origi ...
-
Git:多人推送/抓取分支事项
1.推送分支 1.1使用命令符git push origin branch-name,推送自己已修改的分支 例如git push origin master,git push origin dev. ...
-
Git如何把本地代码推送到远程仓库
Git如何把本地代码推送到远程仓库 1. 初始化版本库 $ git init 2. 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 $ git add . 3. 把添加的文件提交到版 ...
-
解决git rebase操作后推送远端分支不成功的问题
转:解决git rebase操作后推送远端分支不成功的问题 前段时间在工作中同事在rebase时遇到一个问题来问我,今天突然想起来觉得有必要记录一下. 在我们日常工作中,经常使用git座位代码管理工具 ...
-
C#调用EasyPusher推送到EasyDarwin流媒体服务器直播方案及示例代码整理
博客一:转自:http://blog.csdn.net/u011039529/article/details/70832857 大家好,本人刚毕业程序猿一枚.受人所托,第一次写博客,如有错误之处敬请谅 ...
-
RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒 ...
-
用live555将内网摄像机视频推送到外网服务器,附源码
最近很多人问,如何将内网的摄像机流媒体数据发布到公网,如果用公网与局域网间的端口映射方式太过麻烦,一个摄像机要做一组映射,而且不是每一个局域网都是有固定ip地址,即使外网主机配置好了每一个摄像机的映射 ...
-
git将本地仓库推送到远程仓库
如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地 git clone 远程仓库的地址(SSH) 2: git branch //查看本地分支 3: g ...
随机推荐
-
KVM 虚拟化 初体验
KVM 是 Kernel-based Virtual Machine 的简称,是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案: 使用 KVM ,可允许运行多个虚拟机,包括 Linux 和 ...
-
http://blog.csdn.net/chenleixing/article/details/43740759
http://blog.csdn.net/chenleixing/article/details/43740759
-
使用qt制作简单的加法,乘法运算。
1.首先构架qt应用项目 2.然后打开使用 Qt desinger打开 Fomr File 里的UI文件进行编辑 3.由于此程序只需点击加号,减号这两个按钮,所以设置了两个信号槽 4.然后是连接信号槽 ...
-
关于css样式的看法
1.通常有两种方式,第一种是直接写在页面标签中,通过属性style,另一种是通过标签选择器赋样式 第一种方式,就是每一个标签都需要写一遍样式,同时没有做到样式和内容的分离,不方便以后的样式替换,主题的 ...
-
RE:考勤系统的复盘
一大早看了 <美团旅行前端技术体系的思考与实践> 这篇文,恰巧又在昨天完成了一个项目.确实让我忍不住码篇总结,为自己做一个复盘. 历时两个月,考勤系统 这个项目总算能够称得上完成了.项目 ...
-
使用git进行版本控制
一.git基本介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git是目前世界上最先进的分布式版本控制系统. 与常用的版本控制工具 CVS, Subversion 等 ...
-
Cuba获取属性文件中的配置
最直接的办法是,使用AppContext.getProperty("cuba.trustedClientPassword"); 可以获取到系统中的web模块下的wep-app.pr ...
-
注解之@PathVariable
@PathVariable只支持一个属性value,类型是为String,代表绑定的属性名称.默认不传递时,绑定为同名的形参. 用来便捷地提取URL中的动态参数.其英文注释如下: Annotation ...
-
codevs 1795 金字塔 2
codevs 1795 金字塔 2这个题比完全背包多了一个总数的限制,即一定要选(m+n)个,题中说总重量不超过n,所以至少选择m个重量为0的,然后初始化的时候,都填成重量为0的,然后再一个个地把它们 ...
-
Linux 安装iostat命令
首先跟你的Linux系统有关 我用的是Red hat系统 记录下最快的安装iostat命令的方式 起初想查看iostat, 提示 iostat: command not found 于是,通过yum ...