我最近在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中正确删除这些文件吗?
答案 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)