欢迎光临南昌笑劳网络科技有限公司,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 76543 55
南昌笑劳网络科技有限公司
最新资讯News
南昌笑劳网络科技有限公司

为什么Composer install后vendor目录中包含.git文件夹?如何处理?

作者:尼克 | 点击: | 来源:尼克
0901
2026
Composerinstall拉取.git目录通常因启用prefer-source模式或使用path仓库所致;可通过composerconfig--list检查配置,并用ls-lavendor/pkg/.git验证;禁用方式包括设preferred-install为dist或改用dist发布。...
Composer install 拉取 .git 目录通常因启用 prefer-source 模式或使用 path 仓库所致;可通过 composer config --list 检查配置,并用 ls -la vendor/pkg/.git 验证;禁用方式包括设 preferred-install 为 dist 或改用 dist 发布。

Composer install 为什么会拉取 .git 目录?

默认情况下,composer install 不会下载 .git 目录——但如果你看到 vendor/ 下某个包里存在 .git/,基本可以确定:这个包是通过 pathpackage 类型的本地源安装的,或者你启用了 prefer-source 模式。

prefer-source 会让 Composer 克隆 Git 仓库(而非下载 zip 包),因此保留完整的 .git/ 结构。常见触发场景包括:

  • 执行了 composer install --prefer-sourcecomposer update --prefer-source
  • composer.json 中设置了 "config": { "preferred-install": "source" }
  • 使用了 path repository(例如本地开发时指向 ../my-package),且该路径本身是个 Git 仓库

如何确认是不是 prefer-source 导致的?

运行以下命令检查当前配置:

composer config --list | grep preferred-install

如果输出类似 preferred-install: {"*": "source"}preferred-install: "source",就坐实了问题根源。

再验证某个具体包是否以 source 方式安装:

ls -la vendor/myvendor/mypackage/.git

如果能列出内容,说明它确实是 clone 来的;而 zip 安装方式下该目录不存在。

如何避免或清理 vendor 中的 .git 目录?

有两类处理方式,按需选择:

  • 全局禁用 source 安装:执行 composer config --global preferred-install "dist"(注意加 --global 影响所有项目)
  • 仅对当前项目禁用:在项目根目录下运行 composer config preferred-install "dist",会写入本地 composer.jsonconfig 字段
  • 临时覆盖:下次 install/update 时显式加上 --prefer-dist 参数
  • 手动清理(不推荐长期用):find vendor -name ".git" -type d -exec rm -rf {} +,但下次 --prefer-source 还会回来

注意:path 类型仓库不受 prefer-dist 控制——只要源路径含 .git,就会被原样复制进来。这种情况下,要么改用 dist 发布流程(如 packagist.org 托管),要么在 CI/CD 中用 rsync --exclude=.git 同步。

为什么有些团队反而需要 vendor/.git?

少数场景下保留它是有意为之:

  • 调试时需 git blamegit log 查看某行代码的提交来源
  • CI 构建中依赖子模块或 Git hooks(极少见,通常设计不合理)
  • 内部私有包用 path 引入,又希望保留 commit hash 做版本审计

但要注意:这些 .git 目录会显著增大 vendor/ 体积(尤其历史较长的包),且可能意外提交到你自己的 Git 仓库(如果 .gitignore 没写好 /vendor/**/.git)。最隐蔽的问题是:某些 IDE 或静态分析工具会递归扫描 vendor/ 下所有 .git,导致卡顿或误报。


# js  # 它是  # 还会  # 如果你  # 是个  # 就会  # 下次  # 情况下  # 自己的  # ide  # 递归  # red  # 为什么  # 工具  # composer  # json  # git  # 不受 

我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 76543 55
    sale#ncxiaolao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得笑劳科技策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 76543 55
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询