Composer 支持直接安装 Git 仓库的分支、Tag 或 commit,无需发布到 Packagist;指定分支用 dev-分支名(如 dev-main),含斜杠分支写为 dev-feature/login;安装特定 commit 用 dev-branch#hash 格式;若包已注册 Packagist,需在 repositories 中显式声明 vcs 源;安装后可通过 git log 或 composer show 验证。

可以通过 Composer 直接安装 Git 仓库的特定分支、Tag 或 commit,无需发布到 Packagist,特别适合开发调试或测试未发布的功能。
指定分支安装(最常用)
在 composer.json 的 require 中,将版本号写成 dev-分支名 格式,同时确保仓库类型为 vcs(Composer 默认支持 GitHub/GitLab 等主流平台):
"require": {
"vendor/package": "dev-main"
}
如果分支名含斜杠(如 feature/login),写成 dev-feature/login 即可。Composer 会自动识别并拉取该分支最新提交。
安装特定 commit(精准复现)
用 commit 的完整 SHA1 哈希值作为版本号,格式为 dev-branch-name#commit-hash 或直接使用 dev-main#abc1234:
- 推荐写法:
"vendor/package": "dev-main#e8f4a3b5c7d90123456789abcdef01234567890ab" - Composer 会检出该 commit,并标记为
dev-main版本(不影响实际代码) - 适合 CI 测试、问题复现或临时验证某次修改
强制使用 VCS 源(绕过 Packagist 缓存)
若包已注册在 Packagist,但你想从 Git 安装特定分支,需显式声明仓库地址:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/vendor/package.git"
}
],
再配合 dev-xxx 版本号即可生效。否则 Composer 可能优先走 Packagist 元数据,忽略你的分支要求。
安装后验证与更新
执行 composer install 或 composer update vendor/package 后,可通过以下方式确认:
- 查看
vendor/vendor/package/.git/HEAD或运行git -C vendor/vendor/package log -1 - 检查
composer show vendor/package输出中的source行,显示实际 commit 和分支 - 修改后想更新到分支最新版?改用
composer update vendor/package --with-dependencies










