无法从github repo中删除奇怪命名的文件

时间:2013-12-31 17:01:36

标签: git github corrupt rm

我最近在github存储库中获得了一些损坏的文件。我已经从我的主机中删除了它们但是我在用git删除它们时遇到了麻烦,因为它们搞砸了名字。它们在git status下显示如下

# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    "\001\006@@x\021@8"
#   deleted:    "path/to/\001\006@@x\021@8"
#

我试过

git rm "path/to/\001\006@@x\021@8"

但是我收到了错误

fatal: pathspec 'path/to/\001\006@@x\021@8' did not match any files

知道如何从repo中正确删除这些文件吗?

2 个答案:

答案 0 :(得分:4)

Git没有删除该文件的问题,问题是在shell中以正确的方式告诉它。由于特殊的符号,这很棘手,但你可以这样做:

git rm $(echo -e "path/to/\001\006@@x\021@8")

顺便说一句,在您的具体情况下,根据git status的输出,您实际上可以跳过git rm而只是git commit -a-a--all标志使git提交所有待处理的更改,包括未暂存的更改和已删除的文件。

答案 1 :(得分:1)

git rm -- "path/to/\001\006@@x\021@8"

以下SO帖子对于理解双连字符( - )选项非常有用。

Deleting a badly named git branch