跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Composer create-project指定分支 下载dev分支代码方法【技巧】

指定 dev 分支需在包名后加 #分支名,如 laravel/laravel#dev-develop;#main 可省略 dev- 前缀;--prefer-source 确保克隆 Git 仓库而非 ZIP;注意分支存在性、大小写及权限配置。

composer create-project 怎么指定 dev 分支 直接用
--stability=dev
+
--prefer-source
不够,它只放宽稳定性约束,不等于拉 dev 分支。真正生效的是在包名后加
#分支名
,比如
laravel/laravel#dev-develop
。 必须用
#
分隔,不是
@
或
:
分支名要写全,
dev-master
、
dev-main
、
dev-feature/x
都可以,但不能省略
dev-
前缀(除非远程分支名本身没这个前缀) 如果目标分支是
main
且远程没设
dev-main
别名,直接写
#main
即可 为什么有时 #dev-xxx 拉不到最新提交 因为
create-project
默认会执行
composer install
,而
composer.json
里可能锁定了
"laravel/framework": "^10.0"
这类版本约束,导致即使指定了分支,最终仍按
composer.lock
或版本规则降级安装。 加
--no-install
跳过自动 install,再手动
composer install --ignore-platform-reqs
或先删掉项目根目录的
composer.json
里的
require
版本号,改成
"laravel/framework": "dev-main as 10.99"
这种开发版别名写法
--prefer-source
很关键:确保拉的是 Git 克隆而非 zip 包,否则分支信息丢失 常见错误:No driver found for xxx. git 或 Could not find package 错误信息像
[InvalidArgumentException] Could not find package vendor/name
或
No driver found for https://xxx.git
,通常不是分支问题,而是: php版微信js-sdk支付接口类 php版微信js-sdk支付接口类 下载 包名拼错,比如把
spatie/laravel-permission
写成
spatie/laravel-permissions
(多了一个 s) 私有仓库没配
auth.json
,或 token 权限不足(需要
repo
而非仅
read:packages
) 分支名大小写敏感:GitHub 上
Dev-Main
和
dev-main
是两个分支,写错就 404 用了 HTTPS 地址当包名,例如
https://github.com/xxx/yyy.git#main
——
create-project
不接受 URL,只认
vendor/name
格式 替代方案:用 git clone + composer install 更可控 当
create-project
行为不可预测时(比如某些自建 Packagist 或 fork 项目),直接走 Git 更稳:
git clone -b dev-main --depth 1 https://github.com/vendor/name.git myproject cd myproject composer install --no-dev --prefer-dist
--depth 1
加速克隆,避免拉完整历史 进目录后手动
composer install
,能看清每一步依赖解析过程 若需保留 .git 并后续 push,去掉
--depth 1
;若只是临时试用,加
--single-branch
更干净 实际操作中,最易忽略的是
--prefer-source
和分支名是否真实存在于远端——建议先
git ls-remote --heads https://github.com/vendor/name.git
确认分支存在再执行。

相关文章