如何使 Git forget/remove 文件名无效的已删除文件?

How can I make Git forget/remove a deleted file that has an invalid filename?

Screenshot

我不确定如何,但一位同事创建了一个名称无效的文件(文件名中的斜线,"MCHS 6 FH La Crosse.xlsx")。该文件现已删除,但我似乎无法 git 忘记它。我仍然可以 pull/push/commit,但过去一年我每次同步回购时都会盯着这条消息看,今天我决定我已经受够了,我需要它了。

我尝试执行 git rm 但出现错误 "did not match any files"。由于名称中的斜线,我无法用该文件名重新创建一个文件来完成 rm...有什么建议吗?

git rm 是从索引 and/or 工作树中删除现有文件。它不会对已删除的文件执行任何操作。相反,您可能必须提交文件删除。

在终端中,$ 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:    MCHS 6 FH La Crosse.xlsx

添加文件并提交:

git add "MCHS \226 FH La Crosse.xlsx"
git commit -m "remove deleted file from remote repo"

最后,推送到您的远程仓库。

git rm -r --cached -- "path/to/directory"

git pull

git rm "path/to/directory"

git add "path/to/directory"

git push

git pull