GIT:错误:pathspec'xxx与git

时间:2015-11-10 11:23:48

标签: git

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

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

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

composer
composer.lock
vendor/

现在,每当我从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.

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

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

BTW我正在使用git版本2.4.9(Apple Git-60)

3 个答案:

答案 0 :(得分:8)

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

已更新:已将递归和文件参数添加到git rm

就我而言,这有效:

删除缓存文件(只删除索引中的路径,而不是真实文件!!!)

git rm -r --cached .

将所有文件添加到索引

git add .

<强>提交

git commit -m "hopefully fixed pathspec error"

<强>更新 如果这不起作用,请尝试以下方法:

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

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

答案 1 :(得分:1)

好几年了,发布了新的git版本,但是问题仍然时不时地出现在我身上。不幸的是,已发布的修复程序无济于事。但是,与其使用git commit . -m "xyz"进行

git commit -a -m "xyz"

有奇迹。

干杯。

答案 2 :(得分:0)

我遇到这个问题是因为我的文件夹有多少层深(长度)。路径名太长,git 无法处理,所以我拿起文件夹,把它扔到我的 C: 上,一切都开始正常了。检查您的文件夹结构是否太长。例如:

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

上面太长了,尽量缩短。 类似于 C:/folder1/folder2/file.txt(对于存储库中的所有文件),这应该可以解决问题。