Why am I getting "Commit failed with error: pathspec ... did not match any file(s)"?
Why am I getting "Commit failed with error: pathspec ... did not match any file(s)"?
我在使用 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
然后尝试提交。
重命名一些活动后,我在 Android Studio 中遇到了同样的问题。我尝试添加 (git add) 和移动 (git mv) 文件但没有帮助,我一次又一次收到相同的消息。
最后,我决定将有问题文件的包中的 类 备份到我的硬盘中的一个单独文件夹中,然后我从原始文件夹中删除了文件,并在终端中执行了以下操作:
rm app/src/main/java/com/path/to/package/with/problematic/files/
然后通过 Android Studio 重新创建已删除的包,并将我的 类 复制并粘贴到那里。之后我就可以毫无问题地提交了。
由于重命名的目录,我遇到了这种提交失败的情况。
这是最初创建的目录,有一个大小写错误:
application/Templates/lists/index.html
在 IDE 中,我同意将此文件添加到现有的 git 存储库中。
在后来的测试中,我发现 "Templates" 的大写存在区分大小写的路径问题。在 IDE 中,我只是将目录重命名为 "templates"(更改为小写)。我没有记录这方面的实际事件顺序,但后来当我的提交失败并显示以下消息时,我有预感这就是这个问题。显然,IDE 没有完全处理这种重命名目录的情况。
IDE 提交错误信息:
Commit failed with error: pathspec
"application/templates/lists/index.html" did not match any file(s)
known to 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/
然后,我添加了正确的目录名称(我只使用了添加的路径,遵循 git status 的引导)。
git add lists/templates/
在此之后,我的提交成功了。我不确定这是否是理想的技术,但它解决了我的提交错误。
出现这个错误的原因在这个post中指出:
Windows’ file system is mostly case-insensitive, so you cannot rename
a file by just changing its capitalization. Instead, you will have to
use a temporary name in between.
解决方法:
将文件重命名回原始文件,然后将其重命名为不同的名称,然后再重命名为大小写正确的文件。 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.
这是解决此问题的最快方法的简明答案。类似于 @cmbind55 post 但切中要点。
问题:我添加了一个文件,后来重命名了。
解法:
- 取消添加旧文件名
git reset HEAD oldFileName.file
- 现在,添加新文件名
git add newFileName.file
- 投入并快乐
我遇到了类似的问题,但已解决。我应该在 windows 命令行
中使用 "" 而不是 ''
我遇到了同样的问题。 None 这里的答案没有帮助我解决问题。卡了两天,提请注意,整个文件名连路径都很长。我进行了重构,将其重命名为不那么复杂的名称,并重新排列文件夹以减少完整文件名的长度,并且成功了!
我对 "certificate" 这个词作为包名称有同样的问题...当我将包重命名为 "certificates" 时它就可以工作...奇怪..
iOS 9.2.1,Xcode 7.2.1,启用 ARC
在为我的 LaunchImage 资产目录更改 "contents.json" 文件时将 运行 添加到此文件中。您可以选择使用提供的终端命令作为答案,但请尝试这种更简单的方法...
源代码管理 -> 刷新状态
希望这对您有所帮助。干杯!
使用 XCode 7.3 我将有问题的文件重命名为 FooBar.foo.tmp 然后提交一次 XCode/git 添加了这个新文件并将旧文件设置为删除。提交后,我将其重新命名(在 XCode 内)。现在好了。这就是生活。
我有同样的问题。只需将 'Initial comment single quotes '' 更改为双引号 ""
我的问题是我复制/粘贴了整个提交行,它有特殊字符,在控制台中显示为普通字符(例如:智能引号而不是普通引号)。一旦我将它们粘贴到纯文本编辑器中,我就看到了它们,更正了它们,并且成功了。
我遇到了与“.entitlements”文件相同的问题,删除现有文件并再次添加它对我有用。
我在 Mac 中使用 SourceTree 提交删除的文件时遇到了类似的问题。
其中一个有问题的文件带有重音符号 (áéíóú...)。为了解决它,我不得不使用终端而不是 SourceTree
我曾在 BitBucket 上错误地在不同的存储库中创建分支,因此遇到过这种情况,因此请确保您在正确的存储库中并且该分支存在于那里。
如果从终端工作,请确保您的命令中有一个消息标志。
git commit "Your Commit Message" //Throws an error: pathspec '3.
git commit -m "Your Commit Message" //No error thrown
我遇到了同样的错误。我将提交消息作为命令行参数的一部分传递。我用双引号传递的提交消息。
在 git 提交中,我再次使用了双引号。这引发了同样的错误。
所以我在调用 git 提交时从提交消息中删除了双引号。这解决了我的问题。
git commit -m "%commit_message%"
上面的命令抛出同样的错误
我改成了
git commit -m %commit_message%
这解决了我的问题。
在我的例子中,麻烦的文件被标记为 --skip-worktree
。这可以很容易地用
检查
git ls-files -v . | grep ^S
我的问题是一个以 ~$ 开头的临时 word 备份文件,文件名为 ~$??????.docx。
我不确定发生了什么 - GIT 使用 Pycharm 获取了我的 Word 文档,所以我想我在使用 GIT 时正在编辑。
我必须创建一个同名的临时文件,提交然后删除该文件。
Try using double quotes for "Initial project version"
尝试使用双引号,如果你正在 Windows OS
我在使用 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
然后尝试提交。
重命名一些活动后,我在 Android Studio 中遇到了同样的问题。我尝试添加 (git add) 和移动 (git mv) 文件但没有帮助,我一次又一次收到相同的消息。
最后,我决定将有问题文件的包中的 类 备份到我的硬盘中的一个单独文件夹中,然后我从原始文件夹中删除了文件,并在终端中执行了以下操作:
rm app/src/main/java/com/path/to/package/with/problematic/files/
然后通过 Android Studio 重新创建已删除的包,并将我的 类 复制并粘贴到那里。之后我就可以毫无问题地提交了。
由于重命名的目录,我遇到了这种提交失败的情况。
这是最初创建的目录,有一个大小写错误:
application/Templates/lists/index.html
在 IDE 中,我同意将此文件添加到现有的 git 存储库中。 在后来的测试中,我发现 "Templates" 的大写存在区分大小写的路径问题。在 IDE 中,我只是将目录重命名为 "templates"(更改为小写)。我没有记录这方面的实际事件顺序,但后来当我的提交失败并显示以下消息时,我有预感这就是这个问题。显然,IDE 没有完全处理这种重命名目录的情况。
IDE 提交错误信息:
Commit failed with error: pathspec "application/templates/lists/index.html" did not match any file(s) known to 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/
然后,我添加了正确的目录名称(我只使用了添加的路径,遵循 git status 的引导)。
git add lists/templates/
在此之后,我的提交成功了。我不确定这是否是理想的技术,但它解决了我的提交错误。
出现这个错误的原因在这个post中指出:
Windows’ file system is mostly case-insensitive, so you cannot rename a file by just changing its capitalization. Instead, you will have to use a temporary name in between.
解决方法: 将文件重命名回原始文件,然后将其重命名为不同的名称,然后再重命名为大小写正确的文件。 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.
这是解决此问题的最快方法的简明答案。类似于 @cmbind55 post 但切中要点。
问题:我添加了一个文件,后来重命名了。
解法:
- 取消添加旧文件名
git reset HEAD oldFileName.file
- 现在,添加新文件名
git add newFileName.file
- 投入并快乐
我遇到了类似的问题,但已解决。我应该在 windows 命令行
中使用 "" 而不是 ''我遇到了同样的问题。 None 这里的答案没有帮助我解决问题。卡了两天,提请注意,整个文件名连路径都很长。我进行了重构,将其重命名为不那么复杂的名称,并重新排列文件夹以减少完整文件名的长度,并且成功了!
我对 "certificate" 这个词作为包名称有同样的问题...当我将包重命名为 "certificates" 时它就可以工作...奇怪..
iOS 9.2.1,Xcode 7.2.1,启用 ARC
在为我的 LaunchImage 资产目录更改 "contents.json" 文件时将运行 添加到此文件中。您可以选择使用提供的终端命令作为答案,但请尝试这种更简单的方法...
源代码管理 -> 刷新状态
希望这对您有所帮助。干杯!
使用 XCode 7.3 我将有问题的文件重命名为 FooBar.foo.tmp 然后提交一次 XCode/git 添加了这个新文件并将旧文件设置为删除。提交后,我将其重新命名(在 XCode 内)。现在好了。这就是生活。
我有同样的问题。只需将 'Initial comment single quotes '' 更改为双引号 ""
我的问题是我复制/粘贴了整个提交行,它有特殊字符,在控制台中显示为普通字符(例如:智能引号而不是普通引号)。一旦我将它们粘贴到纯文本编辑器中,我就看到了它们,更正了它们,并且成功了。
我遇到了与“.entitlements”文件相同的问题,删除现有文件并再次添加它对我有用。
我在 Mac 中使用 SourceTree 提交删除的文件时遇到了类似的问题。 其中一个有问题的文件带有重音符号 (áéíóú...)。为了解决它,我不得不使用终端而不是 SourceTree
我曾在 BitBucket 上错误地在不同的存储库中创建分支,因此遇到过这种情况,因此请确保您在正确的存储库中并且该分支存在于那里。
如果从终端工作,请确保您的命令中有一个消息标志。
git commit "Your Commit Message" //Throws an error: pathspec '3.
git commit -m "Your Commit Message" //No error thrown
我遇到了同样的错误。我将提交消息作为命令行参数的一部分传递。我用双引号传递的提交消息。
在 git 提交中,我再次使用了双引号。这引发了同样的错误。
所以我在调用 git 提交时从提交消息中删除了双引号。这解决了我的问题。
git commit -m "%commit_message%"
上面的命令抛出同样的错误
我改成了
git commit -m %commit_message%
这解决了我的问题。
在我的例子中,麻烦的文件被标记为 --skip-worktree
。这可以很容易地用
git ls-files -v . | grep ^S
我的问题是一个以 ~$ 开头的临时 word 备份文件,文件名为 ~$??????.docx。
我不确定发生了什么 - GIT 使用 Pycharm 获取了我的 Word 文档,所以我想我在使用 GIT 时正在编辑。
我必须创建一个同名的临时文件,提交然后删除该文件。
Try using double quotes for "Initial project version"
尝试使用双引号,如果你正在 Windows OS