我正在使用git版本1.7.0在Mac OS 10.6中工作.
如果我执行
echo "" > frëd # that's f r \xEB d
git ls-files --other 'f*'
Run Code Online (Sandbox Code Playgroud)
我回来了
"fre\314\210d" # that's 14 characters including two \'s
Run Code Online (Sandbox Code Playgroud)
而ls f*报告
fre?d # 4 characters, 5 bytes
Run Code Online (Sandbox Code Playgroud)
这会导致Emacs中magit-status模式的不良行为.
我如何解决这个问题并让git ls-files以与ls相同的方式报告,而不解释文件名的字节?
- 大卫
Git转义文件名,以便它不包含任何难以解释的字符,如终端序列,常见的分隔符,如换行符等.ls顺便说一下(gnu),但这里ls更宽容.您可以使用该-z标志以零终止,机器可解析的格式获取原始名称.Magit应该使用它(解析转义更脆弱),如果可以,修补它.