任何人都知道可能导致此错误的原因是什么?
我正在尝试使用此命令在git上创建一个包:
git diff -z --name-only --diff-filter=MAR 5e2a4b4 5261fe1 | xargs -s1000000 -0 git archive develop -o 'package.zip'
答案 0 :(得分:2)
除了在ssh上获得错误之外,你已经排除了它,也可能是git archive可以在命令行上处理有限数量的参数。
您已经(怀疑地)使用-s
限制参数的总运行长度,并且您表明您的命令适用于某些提交但不适用于其他提交。您可以通过设置GIT_TRACE=1
来进一步调查差异。
除了xargs -n
之外,通常会限制带有-s
的参数数量,但请注意,当参数数量超过{{{}时,这将执行多次传递给xargs的命令。 1}}阈值,-n
不支持附加到存档。您将不得不调用脚本,可以增加zip存档后缀的运行编号,以某种可接受的方式旋转zip文件名,或者将输出zip文件显式合并到主zip文件中。
如果您在cygwin上运行,git archive
也可能意味着底层操作系统拒绝了其中一个要归档的文件的权限。