~1.0 表示 >=1.0.0 且 =1.0.0 且

在 composer.json 中,~1.0 和 ^1.0 是两种不同的版本约束语法,它们控制依赖包的更新范围,但规则不同。
~1.0 的含义(波浪线操作符)
波浪线操作符遵循“最小版本,不包含下一个重要/次要版本”的原则。具体行为取决于你提供的版本精度。
对于 ~1.0:
- 等价于 >=1.0.0 且
- 允许更新到 1.0.x 的最新版本,比如 1.0.5
- 不允许升级到 1.1.0 或更高
简单说:锁定在 1.0 分支,只允许修复版本(patch)和小的功能更新(minor),但不会进入 1.1。
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
^1.0 的含义(插入符号操作符)
插入符号遵循“兼容性版本”原则,即允许所有不会破坏 API 的更新。这是基于语义化版本(SemVer)设计的。
对于 ^1.0:
- 等价于 >=1.0.0 且
- 允许更新到 1.x 的任意版本,比如 1.5.3、1.9.9
- 不允许升级到 2.0.0 或更高
也就是说,只要主版本号不变,就可以自由升级。
关键区别总结
~1.0 更严格,限制更小的版本范围(只到 ^1.0 更宽松,允许主版本内的所有更新(直到 举个例子:-
~1.2.3允许的最高版本是 -
^1.2.3允许的最高版本是

















