GIt状态表示文件被删除但是git rm说错误:pathspec'.....'与任何文件都不匹配

时间:2013-01-21 17:39:36

标签: 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:    themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php 
#

然后我跑了 git rm themes / custom / gitb / templates / views-view-field - field-overall-rating.tpl.php 并收到错误消息

error: pathspec 'themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php' did not match any file(s) known to git.

git status“知道”该文件,但git rm没有,也不会删除它。我被困住了,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:8)

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

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

删除它。

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

修改

更简洁的方法是让git使用

注意丢失的文件
git add -u

git commit -a

git-add的文档中,这里是-u选项的说明

  

仅匹配索引中已跟踪的文件   而不是工作树。这意味着它永远不会是新的   文件,但它将修改跟踪文件的新内容   并且它将从索引中删除相应的文件   工作树中的文件已被删除。

这是-a

git-commit选项的一个
  

告诉命令自动暂存已修改的文件   并删除,但你没有告诉git的新文件不是   影响。

答案 1 :(得分:1)

git rm man page描述了删除工作树中不再存在的文件的几种方法。

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

答案 2 :(得分:0)

当您删除不使用git&#39; s git rm命令的目录时,会附加此消息。

我做到了      git stash

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

事实上,我首先检查了最后一个哈希,但我不相信这是必需的。