3

我正在尝试从存储库中删除一个名为 :w 的文件。起初尝试git rm :w过,但由于错误,我决定将其删除,以为稍后我会使用 magit 进行删除。Magit 因同样的错误而失败

fatal: pathspec 'w' did not match any files 

所以显然 git 将 : 解释为一个特殊字符。试图逃脱它\:无济于事。知道手头的问题是什么吗?

这是屏幕截图:http: //imgur.com/eyMfeZ4

4

3 回答 3

5

这些中的任何一个都应该起作用:

git rm "\:w"
git rm ./:w
git rm $PWD/:w
git rm :::w

git rm的手册页似乎暗示这git rm -- :w会起作用,但它将文件视为路径规范而不是纯文件系统路径。:::w之所以有效,是因为:pathspec 中的前导标记了“魔术签名”的开始,而您以另一个:. 重置被视为路径。

于 2013-06-25T06:28:59.720 回答
2

这适用于 git 1.8.3:

git rm -- "\:w"
于 2013-06-25T06:36:57.793 回答
-1

删除文件,然后提交树

Git 将您的文件名解释为路径规范。解决此问题的一种方法是从工作树中删除文件,然后提交新树。例如:

$ rm :w
$ git commit -av
于 2013-06-25T06:30:50.940 回答