第 4 章 Tag 与版本锚点
每个可交付版本、每篇论文依赖的代码状态都要有唯一 Tag 标识。
4.1 语义化版本号
主版本.次版本.补丁
| 版本位 | 何时递增 | 示例 |
|---|---|---|
| 主版本 | 不兼容 API 变更、重大重构 | 2.0.0 |
| 次版本 | 向下兼容的新功能 | 1.3.0 |
| 补丁 | 向下兼容的修复 / 优化 / 文档 | 1.0.1 |
状态:开发版 x.y.z-dev;正式版 x.y.z;论文版 paper-<会议/期刊>-<年>。
4.2 Tag 创建时机
| 场景 | Tag 示例 | 责任人 |
|---|---|---|
| 正式版本 | `v1.0.0` | 维护者 |
| 论文提交 / 发表 | `paper-ieee-2027` | 维护者 |
| 重大实验里程碑 | `exp-20270717` | 开发者 + 维护者 |
| 项目交接 | `handover-v1.0` | 维护者 |
4.3 论文绑定(可复现关键)
论文最终实验完成后,在 main 创建附注 Tag:
git tag -a paper-ieee-2027 -m "paper-ieee-2027: LEO 增强 PPP 定位算法研究"
git tag -a paper-v1.0 -m "对应 paper-ieee-2027"
git push origin paper-ieee-2027 paper-v1.0
并在论文正文注明代码版本。论文提交前必须已创建并推送 Tag。
4.4 实验分支归档
实验分支不合并,归档时打 tag 后删(日期用 YYYYMMDD):
git tag archive/exp-lstm-20260701
git push origin archive/exp-lstm-20260701
git branch -d experiment/lstm-attenuation-202607
git push origin --delete experiment/lstm-attenuation-202607
4.5 Tag 命名与注意事项
| 类型 | 格式 | 示例 |
|---|---|---|
| 发布版 | `v<主>.<次>.<补丁>` | `v2.1.3` |
| 论文绑定 | `paper-<会议/期刊>-<年>` | `paper-ion-2027` |
| 论文版本 | `paper-v<主>.<次>` | `paper-v1.0` |
| 实验里程碑 | `exp-<YYYYMMDD>` | `exp-20260101` |
| 归档实验 | `archive/exp-<主题>-<YYYYMMDD>` | `archive/exp-lstm-20260701` |
| 交接标记 | `handover-v<版本>` | `handover-v1.0` |
日期统一用
YYYYMMDD(4+2+2,如20260101),不加分隔符。
注意事项:
- Tag 不可移动:创建后不可改;错误只能删后重建(删 Tag 需管理员权限)。
- 论文优先:论文提交前确保论文 Tag 已创建并推送。
- 冻结代码:Tag 创建后停止修改该状态,保证与论文实验一致。
- 附注 Tag:使用
git tag -a保留作者、日期与备注,不使用轻量 Tag。
练手项目里,在第 2 关打
v0.1Tag 绑定"成员名单 v1"里程碑,并演示paper-*论文锚点(论文绑定见第 4.3 节)。