0

0

composer如何解决vendor目录被加入Git版本控制_composer的gitignore配置【技巧】

冰火之心

冰火之心

发布时间:2025-12-27 16:29:03

|

409人浏览过

|

来源于php中文网

原创

vendor 目录不应提交到 Git,须在 .gitignore 中显式声明 /vendor/ 和 /vendor/*;若已误提交,需执行 git rm -r --cached vendor 并提交;禁用自定义 vendor-dir,坚持默认路径以保障协作与 CI 稳定。

composer如何解决vendor目录被加入git版本控制_composer的gitignore配置【技巧】

vendor 目录不该进 Git,这是硬性约定

Composer 的 vendor/ 目录是依赖安装产物,由 composer installcomposer update 生成,**不应提交到 Git**。一旦误提交,会导致仓库臃肿、合并冲突频发、CI 构建变慢,甚至暴露第三方包的敏感路径信息。

.gitignore 里必须显式忽略 vendor

很多项目初始化时漏掉这行,或只靠全局 .gitignore,但项目级配置才可靠。确保项目根目录下的 .gitignore 文件包含:

/vendor/
/vendor/*

注意两点:

  • /vendor/ 开头的斜杠表示“项目根目录下的 vendor”,避免匹配到子目录中同名文件夹
  • /vendor/* 是为了兼容某些 Git 版本对空目录的处理(比如已存在但为空的 vendor/ 可能被意外跟踪)
  • 如果已误提交过,需先取消跟踪:git rm -r --cached vendor,再 git commit -m "remove vendor from git"

composer.json 中不要写 vendor 路径相关配置

有些开发者试图用 "config": { "vendor-dir": "my-vendor" } 改变路径,以为能绕过问题——这反而更危险:

  • 新路径仍需被 .gitignore 覆盖,否则只是换个名字继续污染仓库
  • 团队成员若未同步该配置,composer install 会失败或混用路径
  • 多数 CI/CD 流程(如 GitHub Actions)默认只认标准 vendor/,自定义路径需额外配置,增加维护成本

除非有极特殊部署约束(如共享主机限制),否则坚持用默认 vendor/ 最稳妥。

Faceswap
Faceswap

免费开源的AI换脸工具

下载

检查是否还有残留的 vendor 文件被 Git 跟踪

执行以下命令确认清理彻底:

git ls-files | grep "^vendor/"

如果输出非空,说明仍有文件在索引中。常见原因:

  • vendor/ 曾被 git add -f 强制添加
  • .gitignore 写成了 vendor(缺末尾斜杠),导致子目录下文件仍可被跟踪
  • IDE(如 PHPStorm)自动把 vendor/ 加入了本地 ignore 规则,但没同步到项目级 .gitignore

补救方式始终是:删缓存 + 提交 ignore + 重新 install。

最易被忽略的是已提交过的 vendor/ 目录不会因新增 .gitignore 自动退出版本控制——Git 只忽略「未跟踪」的文件。只要它曾经 git add 过,就必须手动踢出索引。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

147

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

400

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

528

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

306

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

69

2025.09.10

phpstorm怎么导出项目
phpstorm怎么导出项目

phpstorm提供导出项目功能,步骤如下:打开phpstorm项目转到“项目”菜单选择“导出项目”选择导出格式指定导出位置选择导出范围勾选“包括依赖项”框(可选)单击“导出”完成导出。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

351

2024.04.08

phpStorm怎么运行
phpStorm怎么运行

本专题整合了phpstorm运行教程,阅读专题下面的文章了解更多相关内容。

81

2025.09.18

phpstorm开发环境搭建教程
phpstorm开发环境搭建教程

本专题整合了phpstorm开发环境搭建和运行项目教程,阅读专题下面的文章了解更多详细教程。

74

2025.09.18

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

27

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号