上游 · 理解本功能前需先掌握的(1):
下游 · 依赖/承接本功能的(0):
暂无下游(建议学完它再进阶)
前置依赖包含从属概念升级流程承接
边方向 = 学习顺序(A→B 表示先学 A 再学 B)
为什么需要它
心智模型
Issue 开了一堆,但它们之间有没有关系?「v1.0 发布前要完成哪些事?」「这个季度要交付什么?」没有一个容器把它们归拢起来,进度就散成一地。里程碑(Milestone)就是给一批 Issue 和 PR 套上的「目标框」——把零散的工作项归到同一个发布或时间节点下,一眼看清整体进度。
历史背景 · 它为什么诞生诞生于 2011
诞生issue数量增多后需要把任务归组到版本或发布周期,以便追踪进度。2011-04-09 Issues 2.0引入milestone,与label、assignee构成"组织issue三要素"。
功能介绍
里程碑(Milestone)是 GitHub 里用于把一批问题(Issue)和拉取请求(Pull Request)归组、并跟踪项目进度的功能。它通常对应一个版本目标或时间节点,比如「v1.0 发布」「季度迭代二」。每个里程碑有一个名称、一段描述和一个截止日期(Due Date)。你可以把相关的 Issue 和 PR 挂到同一个里程碑上,GitHub 会自动统计完成度:进度条显示已关闭(closed)项占全部项的比例,让你对「离发布还差多少」一目了然。它的使用节奏是:规划阶段,把本版本要做的任务全部打上对应里程碑;开发阶段,Issue 逐个被 PR 关闭;发布前,查看里程碑进度条是否达到 100%。里程碑就像一个容器,让散落的任务拥有共同的「交付归属」,非常适合按版本迭代管理的项目。
核心术语
里程碑(Milestone)截止日期(Due Date)关闭(Closed)版本(Release)进度跟踪(Progress Tracking)
适用场景
- 当你用「版本」管理项目(如 v1.0、v2.0)时,为每个版本建一个里程碑。
- 当你希望发布会前所有任务可视时,把所有目标 Issue 挂到该里程碑并盯进度条。
- 当你需要按时间点交付一批功能时,用里程碑的截止日期约束进度。
- 当你复盘一个版本完成度时,查看该里程碑下所有已关闭和未关闭的 Issue。
怎么操作(网页 vs 命令行 双轨)
🖱️ 网页操作 (GitHub.com)
- 进入仓库,点击 Issues 标签 → Milestones → New milestone。
- 填写标题、描述和截止日期,点击 Create milestone。
- 打开某个 Issue,在右侧 Milestones 下拉框中把它挂到对应里程碑。
- 回到 Milestones 页查看进度条:已关闭占比即完成度;发布后可 Close 该里程碑。
⌨️ 命令行 (进阶)
gh api -X POST /repos/你的账号/仓库名/milestones -f title=v1.0 -f description=首个版本gh api -X POST /repos/你的账号/仓库名/issues/123/milestone -f milestone=1gh milestone listgh issue list --milestone v1.0
新手建议先从网页操作入手,熟悉概念后再尝试命令行。命令行是真实开发中更常用的方式。
与其他功能的关系
| 关系(前置依赖 / 包含从属 / 概念升级 / 流程承接) | 说明 |
|---|---|
| 包含从属问题(Issue) | 里程碑把一批 issue/PR 归组到目标版本 |
官方文档
小结
SUMMARY
里程碑就是把一批 Issue/PR 归到一个目标下,用进度条跟踪版本交付进度。规划、打标、看进度、到点发布,四步走。下一步学 Projects 看板,用更灵活的面板规划项目。