为什么我收到"提交失败并出现错误:pathspec ...与任何文件都不匹配"?

Dar*_*rio 63 git git-commit

我和Git有一些问题.

我有一个存储库,我可以毫无问题地提交任何文件.但是,有一个文件'Funder.php',当我尝试提交时,告诉我有一个错误:

Commit failed with error:
pathspec 'application/libraries/Funder.php' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)

我对此很陌生,所以想知道是否有人可以请求帮助?

Dan*_*lva 52

发布此错误的原因在此帖中指出:https://stackoverflow.com/a/29485441/2769415

Windows的文件系统大多不区分大小写,因此您无法通过更改其大小写来重命名文件.相反,您必须在两者之间使用临时名称.

解决方案:将文件重命名为原始文件,然后将其重命名为其他名称,然后返回到具有正确大小写的文件.Git不再抛出这个bug了.

例:

Created FOOBar class.
Renamed it to FooBar and then got the error.
Rename it back to FOOBar.
Rename to FooBarTest.
Rename to FooBar.
Git works now.
Run Code Online (Sandbox Code Playgroud)

  • 这在使用上述解决方案尝试和失败后起作用. (4认同)
  • 它是否算作git中的错误? (4认同)

jub*_*0bs 41

这是您尝试运行时遇到的错误

git commit <file>
Run Code Online (Sandbox Code Playgroud)

<file>尚未上演; 换句话说,Git还没有被告知.这很可能是这里发生的事情.跑

git add application/libraries/Funder.php
Run Code Online (Sandbox Code Playgroud)

然后尝试提交.


Osc*_* S. 6

在重命名某些活动后,我在Android Studio中遇到了同样的问题.我尝试添加(git add)和移动(git mv)文件,但从未帮助过,我一次又一次地收到相同的消息.

最后我决定将包含有问题文件的包中的类备份到我的硬盘中的一个单独的文件夹中,然后我从原始文件夹和终端中删除了文件:

rm app/src/main/java/com/path/to/package/with/problematic/files/
Run Code Online (Sandbox Code Playgroud)

然后通过Android Studio重新创建已删除的包,并将我的类复制并粘贴到那里.之后,我能够毫无问题地提交.


Jul*_*oro 5

以下是解决此问题的最快方法的简明答案.与@ cmbind55类似,但重点.

问题:我添加了一个后来重命名的文件.

解:

  1. 取消添加旧文件名

git reset HEAD oldFileName.file

  1. 现在,添加新文件名

git add newFileName.file

  1. 承诺并且快乐

  • 我绝对建议在使用这些工具之前先在命令行学习git.恭喜你弄明白了 (2认同)