为什么我得到“提交失败,错误:pathspec …不匹配任何文件”?

我有一些与Git的问题。

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

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

我对此很新,所以想知道有没有人可以帮忙?

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

 git commit <file> 

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

 git add application/libraries/Funder.php 

然后尝试提交。

这个错误发生的原因是在这篇文章中指出: https : //stackoverflow.com/a/29485441/2769415

解决scheme:将文件重命名为原始文件,然后将其重命名为不同的名称,然后返回到大小写正确的文件名。 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. 

重命名一些活动后,我在Android Studio中遇到了同样的问题。 我尝试添加(git add)和移动(git mv)这些文件,但从来没有帮助过,并且我一次又一次地得到相同的信息。

最后,我决定将包含有问题文件的类备份到硬盘上的单独文件夹中,然后从原始文件夹中删除文件,并在terminal中执行:

 rm app/src/main/java/com/path/to/package/with/problematic/files/ 

然后通过Android Studio重新创build已删除的软件包,并将其复制并粘贴到那里。 之后,我能够承诺没有任何问题。

下面是解决此问题的最快捷方式的简要答案。 类似于@ cmbind55文章,但重点。

问题:我添加了一个后来改名的文件。

解:

  1. 取消添加旧的文件名称

git reset HEAD oldFileName.file

  1. 现在,添加新的文件名

git add newFileName.file

  1. 承诺并开心

由于重命名的目录,我有这个失败的提交scheme。

这是最初创build的大写错误的目录:

 application/Templates/lists/index.html 

在IDE中,我已经同意将这个文件添加到现有的git仓库中。 在后来的testing中,我发现我有一个大小写敏感的“模板”大小写的问题。 在IDE中,我只是将目录重命名为“模板”(更改为小写)。 我并没有logging事件的实际顺序,但是后来当我的提交失败时发出以下消息,我有一个预感,就是这个问题。 显然,IDE并没有完全处理这种重命名目录的情况。

IDE提交错误消息:

提交失败,出现错误:pathspec“application / templates / lists / index.html”与git已知的任何文件都不匹配。

在做了一些阅读后,我的策略是把文件取出来,然后再添加。 我把犯罪嫌疑人的档案分类

 git reset HEAD lists/Templates/lists/index.html 

注意,git status只显示目录在这里…不是文件。

 Untracked files: (use "git add <file>..." to include in what will be committed) lists/templates/ 

然后,我添加了更正的目录名称(我只使用添加的path,从git状态开始)。

 git add lists/templates/ 

之后,我的提交成功了。 我不确定这是否是理想的技术,但它解决了我的情况下的提交错误。

我有同样的问题。 只需将“初始评论单引号”更改为双引号“”

我有一个类似的问题,但解决它。 我应该在Windows命令行中使用“”而不是“”

我有同样的问题。 这里的答案都没有帮助我解决这个问题。 被困两天后,我提请注意,整个path的文件名都很长。 我做了重构重命名为一些不那么复杂,并重新安排文件夹,以减less全文件名的长度,它的工作!

iOS 9.2.1,Xcode 7.2.1,ARC启用

在改变我的LaunchImage资产目录的“contents.json”文件的同时, 您可以select使用提供的terminal命令作为答案,但尝试这种更简单的方法…

源代码pipe理 – >刷新状态

在这里输入图像说明

希望这可以帮助。 干杯!

我有同样的问题与单词“证书”作为一个包名…当我重新命名为“证书”包只是工作…奇怪..

如果从terminal工作,确保您的命令中有一个消息标志。

git commit "Your Commit Message" //Throws an error: pathspec '3.

git commit -m "Your Commit Message" //No error thrown

在XCode 7.3中,我将这个文件重命名为FooBar.foo.tmp,然后在XCode / git添加这个新文件并将旧文件删除之后提交。 一旦我提交,然后我将它重命名回来(在XCode内)。 现在没事了。 这就是生活。

我的问题是我复制/粘贴整个提交行,它有特殊的字符,这似乎是控制台中的正常字符(例如:智能引号,而不是普通的引号)。 一旦我把它们粘贴到一个纯文本编辑器中,我看到它们,纠正它们,并且它工作。

我有'.entitlements'文件相同的问题,删除现有的文件,并再次为我工作。

我有一个类似的问题提交与Mac中的SourceTree删除的文件。 其中一个有问题的文件有口音(áéíóú…)。 为了解决这个问题,我不得不使用terminal而不是SourceTree

我曾经在BitBucket上错误地创build了一个不同的回购商店,因此经历了这个问题,所以要确保你在正确的回购中,并且在那里存在分支。