繁体   English   中英

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

[英].gitignore doesn't work properly on Symfony 3 after composer update

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

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

php composer.phar update

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

问题是,现在我运行时:

git status

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

我的.gitignore包含(其中包括)以下行: vendor/*

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

这个问题可能是双重的。

您可能已经从供应商目录中检入了文件,然后才将其添加到gitignore中,或者您不小心使用--force标志添加了文件,而忽略了gitignore。

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

如果您想更新依赖项,则可能需要使用composer update <dependency-name>一步一步地进行操作,这将再次更新您应该已检入git的composer.lock。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM