GIt状态显示文件已删除,但GIt rm显示错误:pathspec'';不匹配任何文件

GIt状态显示文件已删除,但GIt rm显示错误:pathspec'';不匹配任何文件,git,Git,我已经做了100次了。 我从一个目录中删除了一个文件,然后运行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

我已经做了100次了。 我从一个目录中删除了一个文件,然后运行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:    themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php 
#
git状态“知道”该文件,但git rm不知道也不会删除它。我被卡住了,如何解决这个问题?

介绍了几种删除工作树中不再存在的文件的方法


将来,使用git rm删除文件要比单独删除文件简单。

一个快速而肮脏的解决方案是重新添加文件并使用

git rm themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php
要移除它

git rm
也会从文件系统中删除该文件,因此您不需要(通常也不应该)手动删除该文件

编辑

一种更干净的方法是让git使用

git add -u

从git add的文档中,这里是对
-u
选项的描述

仅与索引中已跟踪的文件匹配 而不是工作树。这意味着它永远不会上演新的一幕 文件,但它将暂存已修改的跟踪文件的新内容 如果相应的 已删除工作树中的文件。

下面是一个用于
-git commit的
选项

告诉命令自动暂存已修改的文件 并删除了,但您没有告诉git的新文件不会被删除 装腔作势


当您删除不使用git的
git rm
命令的目录中的文件时,此附加

是的 吉特储藏

它恢复了文件 我用
rm
而不是
git-rm
删除了它


事实上,我首先签出了最后一个哈希,但我认为这不是必需的

触摸和删除不太有效,但触摸、添加和删除有效,非常感谢。我需要理解“工作树”和“索引”之间的区别。是的,
touch
技巧可能太幼稚了。我将把它从我的答案中删除。
git add -u
git commit -a