Windows下Git Archive如何通过文件/标准输入传递大量文件路径
解决Windows下Git归档大量变更文件时命令行长度超限问题
针对你遇到的Windows命令行长度限制问题,直接利用git archive的--files-from参数就能解决,具体操作分三步:
导出变更文件列表到临时文件
git diff --name-only --diff-filter=d a1be79f0 HEAD > changed_files.txt这条命令会把
a1be79f0到HEAD之间未被删除的变更文件路径写入changed_files.txt,避免直接在命令行中传递大量路径触发长度限制。通过临时文件生成归档
git archive -o changes.zip HEAD --files-from=changed_files.txt--files-from是git archive的原生参数,支持从指定文本文件中读取要归档的文件路径列表,完全避开了命令行长度的限制。(可选)清理临时文件
归档生成完成后,可删除临时文件:del changed_files.txt
关键说明
- 保留了你原命令中的
--diff-filter=d参数,确保只包含未被删除的变更文件,逻辑和原命令完全一致 - 临时文件的路径格式完全兼容
git archive,无需额外调整编码或格式
内容的提问来源于stack exchange,提问作者Chitholian
相关产品推荐
相关产品推荐

