从Github仓库中删除奇怪命名的文件遇到问题

3

最近我在我的github存储库中获得了一些损坏的文件。我已经从主机中将它们删除,但是由于它们的名称混乱,我无法使用git将它们删除。在git状态下,它们会显示为以下内容:

# 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

有什么办法可以从代码库中正确地删除这些文件吗?
2个回答

4

问题不在于Git无法删除该文件,而在于如何以正确的方式在shell中告诉Git。由于存在特殊符号,这很棘手,但您可以按照以下方式执行:

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

顺便提一下,在你的具体情况中,根据你的git status输出,你实际上可以跳过git rm而直接使用git commit -a-a--all标志使git提交所有未暂存的更改,包括未暂存的更改和已删除的文件。


1

信息丰富,解释清晰,完全错过了重点;-) git rm -- somepath 适用于文件名以“-”开头的情况。OP的问题不同。 - janos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接