我在使用我的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)
如果发生了变化,将文件添加到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错误消失了:)
好吧,多年过去了,新的 git 版本发布了,但问题仍然时不时地出现在我面前。不幸的是,发布的修复程序无济于事。然而,与其承诺git commit . -m "xyz"做一个
git commit -a -m "xyz"
创造奇迹。
干杯。