Git不会让我删除以以下内容开头的文件:

时间:2013-06-25 06:24:27

标签: git

我正在尝试从repo中删除名为:w的文件。 最初尝试git rm :w但是在出错时我决定删除它,以为我以后会使用magit进行删除。 Magit因同样的错误而失败

fatal: pathspec 'w' did not match any files 

显然git正在解释:作为一个特殊的角色。试图用\:逃避它无济于事。不知道手头的问题是什么?

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

3 个答案:

答案 0 :(得分:5)

任何这些都应该有效:

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

man page for git rm似乎表明git rm -- :w可以正常工作,但它会将文件视为pathspecs,而不是纯文件系统路径。 :::w有效,因为路径规范中的前导:标记了“魔术签名”的开头,并且您使用另一个:结束签名。重置被视为路径。

答案 1 :(得分:2)

这适用于git 1.8.3:

git rm -- "\:w"

答案 2 :(得分:-1)

删除文件,然后提交树

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

$ rm :w
$ git commit -av