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



我有两台PC:一台laptop一台和一台desktop computer一台。
我用台式计算机在我的Symfony 3项目上工作了两周,我在我的参数.yml.dist上定义了一些新参数。

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

php composer.phar update

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

问题是现在当我运行时:

git status

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

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

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

问题可能是双重的。

在将文件添加到 gitignore 之前,您可能已经从供应商目录中签入了文件,或者您可能不小心使用忽略 gitignore 的--force标志添加了它们。

另一个大问题是你运行composer update这不仅会在你的 composer.lock 中安装依赖项,它实际上会更新它们,这意味着你可能会得到与之前开发的版本不同的版本。下次您可能应该运行composer install(即使在已经安装了供应商的系统上)。这将按照宣传的那样执行,它将安装composer.lock中定义的所有依赖项。每当您签出该文件的较新版本时,安装命令都会自动将本地供应商更新到其中定义的版本。这可确保始终使用相同的依赖项版本。

如果你想更新你的依赖项,你可能想使用composer update <dependency-name>一个接一个地完成,这将再次更新你的composer.lock,你应该已经签入了git。

在您的情况下,您可能希望删除供应商文件夹,但请确保保留 composer.lock。现在,您可以提交此更改以确保删除所有签入的文件供应商/。之后,您的 .gitignore 应该再次工作,并且运行composer install应该重新安装 composer.lock 中定义的所有内容,并且在运行git status时,您不应该看到您的工作目录有任何变化。如果有,您可能需要调整您的 .gitignore,例如尝试/vendor而不是vendor/*

相关内容

  • 没有找到相关文章

最新更新