我在使用我的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)
答案 0 :(得分:8)
如果发生了变化,将文件添加到gitignore或其他内容,我经常遇到此问题。也许你必须重建索引。
已更新:已将递归和文件参数添加到git rm
就我而言,这有效:
删除缓存文件(只删除索引中的路径,而不是真实文件!!!)
git rm -r --cached .
将所有文件添加到索引
git add .
<强>提交强>
git commit -m "hopefully fixed pathspec error"
<强>更新强> 如果这不起作用,请尝试以下方法:
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
(对于存储库中的所有文件),这应该可以解决问题。