GIT:错误:pathspec'xxx与git已知的任何文件都不匹配

Xen*_*ite 5 git

我在使用我的git存储库时遇到了一些麻烦,我无法找到错误:(

事实上,我已将此存储库用于PHP项目.一切都很好.然后,我"添加"了作曲家.即,我将作曲家文件复制到repositorie的根目录,创建了一个composer.json,并使用了"composer install".因此,composer.lock和vendor /是为我创建的.

由于我不希望那些被包含在回购中,我将以下内容添加到.gitignore中

composer
composer.lock
vendor/
Run Code Online (Sandbox Code Playgroud)

现在,每当我从root用户使用"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.
Run Code Online (Sandbox Code Playgroud)

显然,提交(或添加)不起作用,因此我必须手动指定要添加或提交的文件.游民.

我找不到问题:(任何人都知道如何解决这个问题?

BTW我使用的是git版本2.4.9(Apple Git-60)

swi*_*ann 8

如果发生了变化,将文件添加到gitignore或其他内容,我经常遇到这个问题.也许你必须重建索引.

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

在我的情况下,这工作:

删除缓存的文件(只从路径中删除路径,而不是真正的文件!)

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

将所有文件添加到索引中

git add .
Run Code Online (Sandbox Code Playgroud)

承诺

git commit -m "hopefully fixed pathspec error"
Run Code Online (Sandbox Code Playgroud)

更新: 如果这不起作用,请尝试以下操作:

  • 从您的仓库获取新的结账
  • composer, composer.lock, vendor/从.gitignore中删除
  • 再次执行上述建议
  • 将文件夹移到composer, composer.lock, vendor/您的仓库之外
  • 添加和提交,可能添加-A以添加文件被删除
  • 添加composer, composer.lock, vendor/到.gitignore并提交
  • 将文件夹移回composer, composer.lock, vendor/您的仓库

现在它应该从回购中消失,由于你的.gitignore,永远不会再被提交.希望pathspec错误消失了:)

  • 我在swidmann的最后一次更新中说过,但不是git add.,我做了git add -A.之后,它适用于下一次提交,所有未来的提交......:D (2认同)

Xen*_*ite 6

好吧,多年过去了,新的 git 版本发布了,但问题仍然时不时地出现在我面前。不幸的是,发布的修复程序无济于事。然而,与其承诺git commit . -m "xyz"做一个

git commit -a -m "xyz"

创造奇迹。

干杯。