我正在尝试从repo中删除名为:w的文件。
最初尝试git rm :w
但是在出错时我决定删除它,以为我以后会使用magit进行删除。 Magit因同样的错误而失败
fatal: pathspec 'w' did not match any files
显然git正在解释:作为一个特殊的角色。试图用\:
逃避它无济于事。不知道手头的问题是什么?
以下是屏幕截图:http://imgur.com/eyMfeZ4
答案 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