使用特殊字符无法通过git rm删除文件

8

我在git仓库中添加了文件,现在想要删除它们。我用rm XXX命令将其删除。现在,git status显示如下:

Changed but not updated:
    deleted:    "Sche\314\201ma application + interface.graffle"

无论我如何使用 git rm,我仍然有一个 :
fatal: pathspec 'Schêma application + interface.graffle' did not match any files

我尝试用 \ 转义空格,用 \\ 转义 \,用 \" 转义 "。不管我尝试了什么,都没成功。

您有什么提示吗?


在这类问题中,非常重要的是让人们知道你正在使用什么操作系统... - Mark Longair
当然,我也很惊讶没有写它。Darwin MacBook-de-XXX.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3〜1/RELEASE_I386 i386 = Mac Snow-Leopard - kheraud
3个回答

28

这将检测到移除:

git add -u

1

尝试使用Git GUI。您可能可以适当地转义它,但这可能比值得的麻烦还要多。它应该能够适当地进行转义。

如果您的问题是暂存删除操作,请使用git add -A将所有更改添加到索引中。


0

用单引号把它包起来。

 git rm '"Sche\314\201ma application + interface.graffle"'

如果需要在文件名中转义单引号,请将其用双引号括起来。因此,如果由于某种原因您的文件名是'"(单引号,双引号),请使用
git rm "'"'"'

第一组双引号包含单引号,而末尾的单引号则包含双引号。

这适用于Bash,不仅仅是git。有关引号混乱的更多信息,请参见如何在单引号字符串中转义单引号?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接