Git做代码增量发布的重要用法 - --diff-filter
你以为有 bash git diff --name-only 就够了,NO!
对于PHP开发的系统来说,增量发布,一般只需部署新增的文件和有变动的文件,但很多时候,文件是删除的或重构成其它文件名或重构到其它目录的,而diff的结果中默认会包含所有变动。
同时,对于增量来说,还有新增的目录。
git diff --diff-filter 可以过滤几种不同的变化:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).
只选择那些添加 (A), 赋值 (C), 删除 (D), 修改 (M), 重命名 (R)的文件, 它们的类型(如 普通文件, 符号链接, 子模块, …) 是否改变 (T), 是否未合并 (U), 是未知 (X), 或它们的对崩溃(B). 任何过滤字符的组合(包括none)均可使用。当组合中包括All或none,如果任一文件匹配了其他选项,就选择了所有路径。如果没有文件匹配其他选项,什么都不做。
Diff现在支持接受小写字母参数,含义为展示所有非指定类型的变化。
而加上
git diff 608e120 4abe32e --name-only | xargs zip update.zip
就可以用于解决服务器端增量创建目录的问题。
Git做代码增量发布的重要用法 - --diff-filter的更多相关文章
- 完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- [资源]--完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- 配置Git Extension免密码发布代码到CSDN
配置Git Extension免密码发布代码到CSDN [本文默认大家安装了Git以及Git Extension] 今天花费了许多的时间处理这个问题,希望能给大家节约时间.闲话少说:使用ssh验证来p ...
- Eclipse集成Git做团队开发:代码管理
在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...
- Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码
前言: Pull Request的流程 1.fork 首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull ...
- 团队项目利用Msbuild自定义Task实现增量发布
最近一直在做自动部署工具,主要利用到了Msbuild的自定义Task,通过Task我们可以自定义编译.部署过程减少人工直接干预.Msbuild的详细用法,可以去园子里搜一下,有很多的基础教程,这里就不 ...
- 1. Git 克隆代码
1. Git 克隆代码 git clone git://github.com/facebook/hiphop-php.git 2. Git更新分支 查看服务器上的所有分支 [huzg@slave3 h ...
- GIT库代码管理规范
GIT库代码管理规范 一. 规范要求 1. 每个项目建立单独的GIT库.每个GIT库包括两条线,命名规则如下: 开发线(测试):项目名称_DEV 生产线(正式):项目名称 2. 每条线只允许增量不允许 ...
- 学习使用Git 版本控制 代码管理
title: 学习使用Git 版本控制 代码管理 notebook: 经验累积 tags:Git --- Git 版本控制 学习教程 Git版本控制器,可以作为程序员.计算机科学和软件工程的研究人员在 ...
随机推荐
- 64位平台C/C++开发注意事项
在http://www.viva64.com/en/l/上例出了28个在64位平台上使用C/C++开发的注意事项,对于进入64位时代的程序员应该去看看这28个事项,这些英文读物对于有C/C++功底的朋 ...
- Linux VFS数据结构
先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1. VFS依赖于 ...
- nodejs的Express框架源码分析、工作流程分析
nodejs的Express框架源码分析.工作流程分析 1.Express的编写流程 2.Express关键api的使用及其作用分析 app.use(middleware); connect pack ...
- java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写
1.如何判断英文字母的大小写: package com.ldw.string; import java.util.Scanner; /** * @author 作者:ldw E-mail: csu.l ...
- Django 时间与时区设置问题
django 时间与时区设置问题 在Django的配置文件settings.py中,有两个配置参数是跟时间与时区有关的,分别是TIME_ZONE和USE_TZ 如果USE_TZ设置为True时,Dja ...
- MTStatusBarOverlay (状态栏,添加自定义内容库)
NSString * message = [NSString stringWithFormat:@"%@成功", text]; MTStatusBarOverlay *overla ...
- Flex tree加三状态的Checkbox
网上有下过其它人的实现的样例.可是样式不好改.还有就是不能初始化选中,还有三态效果那个半选中状态也是不清楚.所以自己依据Itemrender搞了一个,还凑合 效果如图:全选和半选状态,Checkbox ...
- 高精度运算库gmp
网址:www.gmplib.org 我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 执行操作如下: 1. tar -jv ...
- Android 关于Fragment一些简单注意事项
1.Fragment的生命周期一定要了解清楚: 其实没有什么好说的. 注意关键字所执行的方法: 注意下面基本fragmentTransaction.replace();运行 当FragmentA(初始 ...
- latex基本语法
一直想着学会latex,但是自学起来太麻烦,总是出现各种不理解的错误,也没那么多时间钻研,就学了忘,忘了再学,这里就先摘录下它的基本命令吧.学好了是一件利器!(虽然不常用,但要尽量学会) LaTex基 ...