神即道 道法自然 如来

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

查看id

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

 $ git log --pretty=oneline

差异文件并打包

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

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

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

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

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

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

这里写图片描述

window版本使用winRar:

git diff 387fc78c3d2b54454fbcc340dbac81e9a874ed2e a4b005c43dfca667f0c3109be07e0ea23f7d86e4 --name-only | xargs "C:\\Program Files\\WinRAR\\WinRAR.exe" a update.zip
点赞