如何使用Git存档在Windows上创build一个Tarball?

在Git Bash中我试图使用这个命令:

$ git archive -o test.tar.gz master gzip: compressed data not written to a terminal. Use -f to force compression. For help, type: gzip -h 

文件test.tar.gz是空的,但我的存储库不是空的,创build一个zip文件工作正常(包含我所有的源文件)! 为什么tarball格式不能生成档案?

这似乎是git archive希望将内容从targzip的方式与Windows处理管道的方式之间的兼容性问题。 您可以通过手动将tar压入gzip来生成相同的错误消息:

 $ tar -c file.txt | gzip gzip: compressed data not written to a terminal. Use -f to force compression. For help, type: gzip -h 

这两个命令在Windows 7上适用于我,在功能上应与您正在尝试的命令相同:

 $ git archive -o test.tar master $ gzip test.tar 

管它到gzip:

 git archive master | gzip > test.tar.gz 

即使你不使用Git Bash,也可以在常规的命令提示符下使用:

 git archive --format=tar.gz master > test.tar.gz