最简写法 dev-main 易出错,可靠做法是显式写法+命令+验证三步闭环:分支名须与远端完全一致(含大小写、斜杠)、配 --stability=dev 或 minimum-stability: dev、用 #hash 锁定 commit、私有库必配 vcs repositories 且 url 带 .git 后缀,并验证 composer.lock 的 source.reference 与 vendor/ 下 git rev-parse HEAD 一致。

直接写 dev-main 是最简方式,但几乎每次都会出问题——不是分支名错、就是锁文件没更新、或私有库缺 repositories 配置;真正能落地的只有“显式写法 + 显式命令 + 显式验证”三步闭环。
dev-分支名必须和 Git 远端完全一致,大小写、斜杠、前缀一个都不能错
Composer 不做模糊匹配,只做字符串精确比对。远端是 main,你就得写 dev-main;远端是 feature/login,就得写 dev-feature/login(不能省 dev-,也不能把 / 换成 -)。
-
dev-Main≠dev-main:Git 分支名区分大小写,写错就报Could not find a version of package xxx matching your minimum-stability -
feature/login分支不能写成dev-feature-login:Composer 要求保留原始斜杠,仅加dev-前缀 - GitHub 新仓库默认分支是
main,不是master;继续用dev-master会直接失败
require dev-xxx 必须配 --stability=dev 或改 minimum-stability
默认 minimum-stability 是 stable,而所有 dev- 开头的引用都属于不稳定版本,不放宽就根本进不了解析阶段。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 临时装一次:用
composer require vendor/package:dev-main --stability=dev(-s dev是简写) - 长期开发需要:在
composer.json根级加"minimum-stability": "dev",但上线前必须删掉或改回stable - 更安全的替代写法:
composer require vendor/package:dev-main@dev,这个@dev后缀只对当前包生效,不影响全局策略
dev-分支默认浮动,要锁定 commit 必须用 #hash 或 --prefer-source
写 "vendor/package": "dev-main" 看似装了 main 分支,实际 composer.lock 记录的是当时 HEAD 的 commit hash;下次 composer update 可能拉到新提交,force push 后旧 hash 直接失效。
- 想固定到某次提交:手动改
composer.json为"vendor/package": "dev-main#abc1234",再运行composer update vendor/package - 确保走 Git 克隆(而非 dist zip):加
--prefer-source参数,否则#hash可能被忽略 - 验证是否真锁住:看
composer.lock里对应包的source.reference字段,值必须是 40 位或至少 7 位小写哈希,不能是main或HEAD
私有仓库不配 repositories 就一定失败,vcs 类型和 .git 后缀缺一不可
Packagist 上没注册的包,Composer 默认不查;哪怕你本地 git clone 得通,composer require 也会报 Could not find package。
- 必须在
composer.json根级加repositories块,且type必须是vcs(不是package或path) -
url必须带.git后缀:例如"https://github.com/your-org/private.git",少这个后缀会导致克隆失败 - HTTPS 私有库需带 token:
"https://token:x-oauth-basic@github.com/your-org/private.git";SSH 库需确认ssh -T git@github.com能通
最常被跳过的动作是验证:别信 composer show 输出的 dev-main,它只是别名;真正起作用的是 composer.lock 里的 source.reference 和 vendor/ 下实际的 git rev-parse HEAD —— 两者必须一致才算落定。

















