git 打标签并推送tag到托管服务器
我们常常在代码封板时,使用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 ...
随机推荐
- 全部springxml文件约束 applicationContext.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.sp ...
- ADO.NET中的五个主要对象
Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...
- C#之文本操作
[转载]C#文件操作大全(SamWang) 文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. msd ...
- POJ 2479
---恢复内容开始--- http://poj.org/problem?id=2479 #include <stdio.h> #include <iostream> using ...
- Context.managedQuery()和context.getContentResolver()获取Cursor关闭注意事项
在获取图片缩略图时,获取游标并进行相关的操作. Cursor cursor = context.getContentResolver().query(MediaStore.Images.Thumbna ...
- Windows下查看局域网内某台计算机的MAC地址
我们知道在局域网中,在Windows下,查看局域网内其他主机的ip和对应mac地址的命令是: arp -a 这样可以看到ip和mac地址的对应关系,还是比较方便的 但是有些时候使用arp命令并不能列出 ...
- filter 简介
概述 filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组. 语法 var new_arrary = arr.filter(callback[, thisArg] ...
- 【python】入门学习(九)
面向对象编程 class 定义类,类的值可以修改 _ _init_ _(self) 初始化函数,创建类时自动调用 self 指向对象本身,可以用其他的名字 但不建议 #person.py class ...
- struts2.0整合json
框架:struts2.0+hibernate2+spring 今天写代码时,需要用到json,我就直接加了两个jar包:json-lib-2.1-jdk15.jar,struts2-json-plug ...
- 关于Javascript splice方法的一个坑。
w3c相关文档:http://www.w3school.com.cn/jsref/jsref_splice.asp bug:购物车计算价格的时候.加商品没问题,减商品的时候价格总是计算错误. 经排查发 ...