zoukankan      html  css  js  c++  java
  • MTK Android Git提取出两个版本之间的差异文件并打包

    git提取出两个版本之间的差异文件并打包

    首先你得知道版本之间的commit id 
    git log –pretty=oneline

     $ git log --pretty=oneline
    • 1

    这里写图片描述

    差异文件并打包

    git diff这个命令能比较两个提交之间的差异,使用–name-only参数可以只显示文件名。由于commit id 太长 一般复制前面7位 就可以了 例如:

    $ git diff 61d2112 f3c0f99 --name-only
    //后续打包太麻烦 不采用
    • 1
    • 2

    这里写图片描述
    git diff列出两个提交之间差异的文件

    这个输出结果非常有意思,就是差异文件的相对地址,不正好是压缩命令的参数吗?于是立马使用压缩命令

    $ zip update.zip 所有的文件… 
    就能成功打包了。只是这样的话也太麻烦了吧,幸好linux有提供一个命令xargs能将前一个命令的输出转成另外一个命令的参数,按照这个思路就非常简单了。

    $ git diff 61d2112 f3c0f99 --name-only | xargs zip update.zip
    • 1

    这里写图片描述

    补充zip 打包解压命令

    linux zip命令的基本用法是: 
    zip [参数] [打包后的文件名] [打包的目录路径]

    linux zip命令参数列表: 
    -a 将文件转成ASCII模式 
    -F 尝试修复损坏的压缩文件 
    -h 显示帮助界面 
    -m 将文件压缩之后,删除源文件 
    -n 特定字符串 不压缩具有特定字尾字符串的文件 
    -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 
    -q 安静模式,在压缩的时候不显示指令的执行过程 
    -r 将指定的目录下的所有子目录以及文件一起处理 
    -S 包含系统文件和隐含文件(S是大写) 
    -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

    举例:说个最常用的吧,打包/opt/abc目录到/opt/abc.zip

    # zip -r /opt/abc.zip /opt/abc/    //参数一般只要有-r

    unzip命令的基本语法是:unzip [参数] zip文件 
    简单例子: 
    把本目录下的test.zip文件解压:

    unzip test.zip

    参数列表: 
    -l 列出压缩文件所包含的内容 
    -v 显示详细的执行过程

  • 相关阅读:
    CF687D Dividing Kingdom II
    图论——EK算法
    P6082 [JSOI2015]salesman
    联合权值——树上问题2014noip
    P2071 座位安排——二分图最大匹配
    匈牙利优化时间戳的正确性
    P1541 乌龟棋——线性动规
    P1858 多人背包
    P3558 [POI2013]BAJ-Bytecomputer——线性动归
    P2303 [SDOI2012] Longge 的问题
  • 原文地址:https://www.cnblogs.com/cyqx/p/8056358.html
Copyright © 2011-2022 走看看