git diff打包两个版本之间指定的文件

命令:git diff b1..b2 --name-only|grep -v -E 'pathA|pathB'|xargs tar zcvf test.tar.gz

示例:git diff 7ee28d3d..525015f9 --name-only|grep -v -E 'front'|xargs tar zcvf test.1112.1356.tar.gz

git diff命令比较两个版本的差异,后接版本号,版本号b1和b2是一个7位(windows下的sourcetree中)或8位(ubuntu下的smartgit中)的序列。

这个序列是一个 40 位的 SHA-1 的哈希值取前7位或者8位,此处不详说。

--name-only 参数表示只列出这两个版本号之间修改的文件名,不列出详细信息。

grep命令正则匹配过滤这两个版本号之间不想被打包的文件或目录,-v表示反转查找,-E表示将范本样式为延伸的普通表示法来使用。

更详细参数可以自行网上搜索(linux grep命令参数及用法)。

xargs是一条Unix类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

tar是压缩和解压缩命令,具体用法此处不详说。后接文件名。

原文地址:https://www.cnblogs.com/yixinchen/p/5000268.html