提取在git提交中更改的所有文件

我需要为某人做一个补丁(他们不使用git) – 一个由提交改变的文件的zip文件。

我以为像这样

git archive –format = zip commitguid> myfiles.zip

但是这提取了整个事情,而不仅仅是更改的文件。 有没有办法做到这一点? 为了使它更复杂 – 是否有任何方式做多个提交(是的,我应该分支之前进行更改,但事后来看)

编辑

基于下面的@琥珀解决scheme,我可以在Git Bash中的2个步骤中完成这个7Zip安装在c:\ data \ progs的窗口。

git diff --name-only a-sha b-sha > tmp.txt /C/data/progs/7za.exe a myzip.zip @tmp.txt 

 git diff --name-only <oldsha> <newsha> | zip dest.zip -@ 

填写适当的SHAs / refs。 例如,要创建仅在master分支和feature分支之间更改的文件的zip文件:

 git diff --name-only master feature | zip dest.zip -@ 

另请参阅git help format-patch 。 它会产生一个提交的所有变化,提交作者,日期,消息和一些不错的差异统计的差异补丁。 你可以压缩并发送。