git 名称中包含空格的存档文件

git archive files with whitespace in their names

git 'archive' 命令停止并出现以下错误:

fatal: pathspec 'path to file' did not match any files.

尝试将文件路径括在引号或双引号内无法解决问题:

git archive -o upload.zip a2c79b2 $(git diff --name-only 33ab7ac^.. a2c79b2 --diff-filter=ACMRTUX | awk '{print "\x27"[=11=]"\x27"}')

git archive -o upload.zip a2c79b2 $(git diff --name-only 33ab7ac^.. a2c79b2 --diff-filter=ACMRTUX | awk '{print "\x22"[=11=]"\x22"}')

尝试在 space 之前放置 bakslash 或正斜杠也无济于事:

git archive -o upload.zip a2c79b2 $(git diff --name-only 33ab7ac^.. a2c79b2 --diff-filter=ACMRTUX | awk '{gsub(/ /,"\ ");print}')

有没有什么方法可以将包含 whitespace 的文件路径发送到 'archive' 命令,使其能够正确解析它们?

非常感谢。

git archive -o upload.zip a2c79b2 $(git diff --name-only 33ab7ac^.. a2c79b2 --diff-filter=ACMRTUX | sed 's/ /\xA0/g')