作曲家更新后,.gitignore在Symfony 3上无法正常工作

时间:2017-04-11 07:37:23

标签: php git symfony composer-php

我有两台电脑:laptopdesktop computer 我使用台式计算机在Symfony 3项目上工作了两周,我在参数上定义了一些新参数.yml.dist

今天,我需要使用我的笔记本电脑,所以我从我的原始分支拉了一下,然后我执行了以下命令来更新我的项目:

php composer.phar update

此命令成功更新了我的项目(参数和供应商目录)。有了这个,我现在可以运行我的项目。

问题在于我现在跑步时:

git status

许多修改过的文件出现在vendor目录中。另外composer.lock文件出现者,我认为这是正确的,但不是供应商文件。

我的.gitignore包含以下行:     vendor/*

我做错了什么?我该如何解决?

1 个答案:

答案 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/*