必须在composer.json中显式写"dev-分支名"(如"dev-main"),因composer默认只认stable版本,漏dev-前缀会报错或退回到最新tag;分支名严格区分大小写,且需配合--prefer-source确保.git目录可用。

直接在 composer.json 里写分支名,不是 tag 也不是 commit hash
Composer 默认只认 stable 版本(如 v2.3.0),想拉取 dev-main 或 dev-feature/login 这类分支,必须显式声明分支前缀 dev-。漏掉这个前缀,Composer 会报 Could not find package 或退回到最新 stable 版。
实操建议:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在
composer.json的require中写成:"vendor/package": "dev-main"或"vendor/package": "dev-feature/auth-check" - 分支名区分大小写,
dev-Main和dev-main是两个不同版本 - 如果远程仓库没开启
allow-plugins或分支未被 Packagist 索引,可能需要先加仓库源:"repositories": [{"type": "vcs", "url": "https://github.com/vendor/package"}]
用 --prefer-source 强制走 git clone,避免 zip 包缺失 .git 目录
默认 composer install 会下载 zip 包(--prefer-dist),但 zip 包不含 .git 目录,导致后续无法切换分支或查看当前检出状态。测试阶段常需验证代码改动、打临时 patch,这时必须用 --prefer-source。
实操建议:
- 运行:
composer install --prefer-source - 装完后进
vendor/vendor/package目录,执行git branch能看到当前是main还是feature/xxx - 不加这个参数,
git status会提示fatal: not a git repository
遇到 “Your requirements could not be resolved” 别急着删 vendor
这个错误常见于分支依赖了其他包的开发版,但你的 composer.json 没同步声明——比如 package-a 的 dev-main 依赖 package-b:^3.0@dev,而你只写了 package-a:dev-main,Composer 就会卡住。
实操建议:
- 先跑
composer why-not vendor/package:dev-main查冲突源头 - 检查
package-a的composer.json里require字段,把缺失的 dev 依赖也补进你项目的require - 避免直接
rm -rf vendor && composer install,这掩盖了依赖图问题,下次换分支还会崩
install 后的版本锁定在 composer.lock 里,换分支要 update
composer install 只读 composer.lock,哪怕你改了 composer.json 里的分支名,不 update 就不会生效。很多人改完 dev-main → dev-test-2024,一跑 install 发现还是旧分支。
实操建议:
- 改完
composer.json后,必须运行:composer update vendor/package --with-dependencies - 或者更干脆:
composer update(适合本地调试,CI 环境慎用) - 确认生效:看
composer.lock里对应包的source字段是否更新了reference(commit hash)和url










