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

And*_*iih 4 windows git

我需要为某人制作补丁(他们不使用git) - 通过提交更改的文件的zip.

我觉得有点像

git archive --format = zip commitguid> myfiles.zip

但这会提取整个事物,而不仅仅是已更改的文件.有没有办法做到这一点?并且使它变得更复杂 - 有没有任何方法可以通过多次提交来执行此操作(是的,我应该在进行更改之前进行分支,但事后才知道)

编辑

基于下面的@Amber解决方案,我可以在Git Bash的两个步骤中执行此操作,在Windows中安装了7Zip的c:\ data\progs.

git diff --name-only a-sha b-sha > tmp.txt
/C/data/progs/7za.exe a myzip.zip @tmp.txt
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 15

git diff --name-only <oldsha> <newsha> | zip dest.zip -@
Run Code Online (Sandbox Code Playgroud)

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

git diff --name-only master feature | zip dest.zip -@
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用7-zip` -si`标志一步完成:http://pwet.fr/man/linux/commandes/7z和http://stackoverflow.com/questions/805706/piping-data-上 - 窗口命令提示 (2认同)