GIT:错误:路径规范“xxx did not match any file(s) known to git”

8
我有一个Git存储库出了问题,但我找不到错误:(
情况是,我已经在用PHP项目使用了这个存储库。一切都好。然后,我“添加”了composer。也就是说,我将composer文件复制到存储库的根目录中,创建了composer.json,并使用“composer install”。因此,为我创建了composer.lock和vendor/。
由于我不想将这些包含在存储库中,所以我将以下内容添加到.gitignore中。
composer
composer.lock
vendor/

现在,每当我从根目录使用"git add"或"git commit"时,都会出现以下错误:

$ git commit * -m "fixed issue #123"
error: pathspec 'composer' did not match any file(s) known to git.
error: pathspec 'composer.lock' did not match any file(s) known to git.
error: pathspec 'vendor' did not match any file(s) known to git.

很明显,提交(或添加)没有起作用,所以我必须手动指定要添加或提交的文件。非常遗憾。 我找不到问题:(有人知道如何修复吗? 顺便说一下,我正在使用git版本2.4.9(Apple Git-60)。
4个回答

19

如果某些东西发生了变化,文件被添加到gitignore或其他情况,我经常会遇到这个问题。也许你需要重建索引。

更新:git rm添加了递归和文件参数。

在我的情况下,这样做可以解决问题:

删除缓存文件(只有路径从索引中删除,而实际文件不会被删除!!!)

git rm -r --cached .

将所有文件添加到索引中

git add .

提交

git commit -m "hopefully fixed pathspec error"

更新: 如果这种方法行不通,请尝试以下方法:

  • 从你的仓库中获取一个新的checkout
  • composer、composer.lock、vendor/从你的.gitignore文件中移除
  • 再次执行上面的建议
  • composer、composer.lock、vendor/文件夹移动到你的仓库之外
  • 添加并提交,也许需要使用-A选项来添加已经删除的文件
  • composer、composer.lock、vendor/重新添加到你的.gitignore文件中并提交
  • composer、composer.lock、vendor/文件夹移回你的仓库中

现在它应该从仓库中消失了,并且由于你的.gitignore文件,永远不会再次被提交。希望路径规范错误已经解决 :)


好像只对一个提交有效。现在,我再次遇到完全相同的错误。而且这一次,修复方法不起作用 :( - Xenonite
1
你可以尝试使用 git add -A 而不是 git add . 吗? - swidmann
非常感谢您再次回答这个问题。我尝试过了,但是还是遇到了完全相同的错误:(不过我之后会再试一次。也许在某个地方我犯了错... - Xenonite
没问题,如果你有解决方案,我会很高兴如果你在这里发布它作为一个答案。 - swidmann
3
我按照swidmann在最新更新中所说的去做了,但是我使用了git add -A . 而不是 git add . ,然后对于下一次提交和所有未来的提交都有效... :D - Jaythaking
显示剩余3条评论

13

多年过去了,新的git版本发布了,但我仍然时不时地遇到这个问题。发布的修复方法不幸地没有帮助到我。但是,与其使用git commit . -m "xyz"提交,使用

git commit -a -m "xyz"

会奏效。

干杯!


0

我遇到了这个问题,是因为我的文件夹层级(长度)太深了。路径名太长,git 无法处理,所以我把文件夹放在 C 盘上,一切都开始正常工作了。检查一下你的文件夹结构是否太长。例如:

C:/folder1/folder2/folder3/..../folder99/file.txt

上面的内容太长了,尝试缩短一些。 像这样 C:/folder1/folder2/file.txt(对于存储库中的所有文件),这应该可以解决问题。


0
GIT: 错误:路径规范 "git checkout 与 git 已知的任何文件不匹配
对于这个错误,我使用了 git fetch origin 命令,然后尝试切换到我想要的分支,问题得到解决。
希望这对其他人有所帮助!

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