我有两台电脑:laptop
和desktop computer
我使用台式计算机在Symfony 3项目上工作了两周,我在参数上定义了一些新参数.yml.dist
今天,我需要使用我的笔记本电脑,所以我从我的原始分支拉了一下,然后我执行了以下命令来更新我的项目:
php composer.phar update
此命令成功更新了我的项目(参数和供应商目录)。有了这个,我现在可以运行我的项目。
问题在于我现在跑步时:
git status
许多修改过的文件出现在vendor
目录中。另外composer.lock
文件出现者,我认为这是正确的,但不是供应商文件。
我的.gitignore
包含以下行:
vendor/*
我做错了什么?我该如何解决?
答案 0 :(得分:0)
问题可能是双重的。
在将文件添加到gitignore之前,您可能已经从供应商目录中检入了文件,或者您可能不小心添加了忽略gitignore的--force
标记。
另一个大问题是你运行composer update
这不仅会在你的composer.lock中安装依赖项,它实际上会更新它们,这意味着你可能会获得与之前开发的版本不同的版本。下次您应该运行composer install
(即使在已安装供应商的系统上)。这将按照广告宣传它将安装composer.lock中定义的所有依赖项。每当您签出该文件的较新版本时,install命令将自动将本地供应商更新为其中定义的版本。这可确保您始终使用相同的依赖项版本。
如果您想要更新您的依赖项,您可能希望使用composer update <dependency-name>
逐个更新它,这将再次更新您应该已检入git的composer.lock。
在您的情况下,您可能希望删除供应商文件夹,但请确保保留composer.lock。现在您可以提交此更改以确保删除所有签入文件vendor /。之后,您的.gitignore应该再次运行,并且运行composer install
应该重新安装composer.lock中定义的所有内容,并且在运行git status
时,您不应该看到工作目录中的任何更改。如果有,你可能需要调整.gitignore,例如尝试/vendor
而不是vendor/*
。