跳过导航,直达内容

第11章:Projects 与项目管理 📊

GitHub Projects 是内置的项目管理工具,类似 Trello。本章教你如何使用它。

📋 目录


什么是 Projects?

基本定义

Projects(项目) 是用看板方式管理 Issues 和 PR 的工具。

比喻

传统的 Issue 列表:
│
├── Issue #1: 添加登录功能
├── Issue #2: 修复登录 Bug
├── Issue #3: 添加注册功能
└── Issue #4: 修复注册 Bug

→ 分不清哪些在做,哪些已完成...

使用 Projects 看板:
│
├── 📋 Todo(待办)
│   └── Issue #3: 添加注册功能
│
├── 🔄 In Progress(进行中)
│   └── Issue #1: 添加登录功能
│
├── 🔍 Review(审查中)
│   └── PR #5: 实现登录功能
│
└── ✅ Done(已完成)
    ├── Issue #2: 修复登录 Bug
    └── Issue #4: 修复注册 Bug

→ 一目了然!

创建 Project

步骤详解

第1步:进入 Projects 页面

方法1:仓库页面 → Projects 标签 → New project
方法2:https://github.com/GTX950L/github-encyclopedia/projects/new

第2步:选择模板

模板 适用场景
Board(看板) 适合敏捷开发、任务跟踪
Table(表格) 适合需要筛选、排序的场景
Roadmap(路线图) 适合规划长期目标
Bug triage(Bug 分类) 适合管理 Bug 报告

推荐:选择 Board(看板) ✅

第3步:配置 Project

填写信息:
│
├── Project name: My Project
├── Description: 管理我的项目任务
└── Template: Board(看板)

使用看板(Kanban)

基本操作

1️⃣ 添加 Issue 到看板

方法1:在 Project 页面点击 "Add item"
│
├── 选择已有的 Issue/PR
└── 或创建新的 Issue

方法2:在 Issue 页面,点击右侧 "Projects"
│
└── 选择要添加的 Project

2️⃣ 移动 Issue(拖拽)

在看板中,直接拖拽 Issue 卡片:
│
├── 从 Todo → In Progress(开始做)
├── 从 In Progress → Review(提交审查)
└── 从 Review → Done(完成!)

3️⃣ 添加自定义字段

为什么需要?

默认的看板只有”状态”,你可能需要:

如何添加?

1. 在 Project 页面,点击右上角 ⚙️(Settings)
2. 点击 "Add field"
3. 选择字段类型:
   ├── Text(文本)
   ├── Single select(单选)✅ 推荐
   ├── Number(数字)
   ├── Date(日期)
   └── Iteration(迭代)
4. 配置选项
5. 保存

示例:添加”优先级”字段

Field name: Priority
Field type: Single select
Options:
├── 🔴 High
├── 🟡 Medium
└── 🔵 Low

自动化工作流

为什么需要自动化?

手动操作太麻烦!

❌ 不用自动化:
│
├── 每次提交 PR,手动移动到 Review 列
├── 每次 PR 合并,手动移动到 Done 列
└── 重复劳动...

✅ 使用自动化:
│
├── 提交 PR → 自动移动到 Review 列
├── PR 合并 → 自动移动到 Done 列
└── 自动完成!

如何配置自动化?

第1步:进入自动化设置

Project 页面 → ⚙️ Settings → Workflows → Add workflow

第2步:选择触发器(Trigger)

触发器 说明
Item added to project 当 Issue/PR 被添加到 Project
Item reopened 当 Issue/PR 被重新打开
Pull request merged 当 PR 被合并
Pull request closed 当 PR 被关闭

第3步:选择动作(Action)

动作 说明
Set field value 设置字段值(如:状态 = Done)
Remove from project 从 Project 中移除
Send Slack notification 发送 Slack 通知

示例:PR 合并后自动移动到 Done

Trigger: Pull request merged
│
Action: Set field value
│
├── Field: Status
└── Value: ✅ Done

🆕 Projects v2(新版项目管理)

GitHub 在 2023 年推出了 Projects v2(新版 Project),比传统 Projects 更强大。

与传统 Projects 的对比

特性 传统 Projects Projects v2(新版)
视图方式 只有看板 📊 表格 + 📋 看板 + 📅 日历
自定义字段 有限 ✅ 丰富(文本、数字、日期、迭代)
筛选器 基础 ✅ 强大(类似 Excel 筛选)
分组 ❌ 不支持 ✅ 按任意字段分组
外部仓库 可以 ✅ 原生支持
Insights ❌ 无 ✅ 统计图表
适合 简单任务 复杂项目管理

创建 Projects v2

1. 点击仓库顶部导航的 Projects → Projects (classic) 旁边的下拉
2. 点击 "New project"
3. 选择模板:Board(看板)或 Table(表格)
4. 设置项目名称
5. 点击 "Create"

表格视图(推荐)✅

表格视图是 Projects v2 的默认视图,看起来像 Excel:

标题 状态 优先级 迭代 负责人 截止日期
修复登录 Bug ✅ Done 🔴 High Sprint 1 @GTX950L 2026-06-15
添加支付功能 🔄 In progress 🔴 High Sprint 1 @小明 2026-06-20
性能优化 ⏳ Todo 🟡 Medium Sprint 2 @小红 2026-06-30

强大的筛选功能

Projects v2 支持类似 GitHub Issues 的筛选语法:

# 只显示高优先级的任务
priority:High

# 只显示某个迭代的任务
iteration:"Sprint 1"

# 组合筛选
status:"In progress" priority:High

统计图表(Insights)

Projects v2 内置了统计功能:

进入 Project → Insights 标签 → 创建图表

常见问题

Q1: Project 和 Milestone 有什么区别?

功能 Project Milestone
可视化 ✅ 看板、表格 ❌ 只有列表
自定义字段 ✅ 支持 ❌ 不支持
自动化 ✅ 支持 ❌ 不支持
适合 日常任务管理 版本发布规划

建议:


Q2: 可以多个仓库共用一个 Project 吗?

A: ✅ 可以!

如何创建组织级 Project?

1. 访问组织页面(或你的个人页面)
2. 点击 Projects → New project
3. 在创建时选择 "Organization" 而非 "Repository"

这样,所有仓库的 Issue 和 PR 都可以添加到这个 Project。


Q3: 如何导出 Project 数据?

A: GitHub 原生不支持导出,但可以使用浏览器扩展或脚本。

方法1:使用 GitHub CLI

# 导出 Project 为 JSON
gh project item-list 1 --format json > project.json

方法2:使用浏览器扩展


📝 实战练习

练习1:创建你的第一个 Project

任务:

  1. 在一个仓库中创建 Project(选择 Board 模板)
  2. 添加 3 个 Issue 到看板
  3. 创建 Todo、In Progress、Review、Done 四个列
  4. 拖拽 Issue,模拟工作流

练习2:添加自定义字段

任务:

  1. 在 Project 中添加”优先级”字段
  2. 配置选项:High、Medium、Low
  3. 为每个 Issue 设置优先级

练习3:配置自动化

任务:

  1. 配置工作流:当 PR 被合并,自动设置状态为 Done
  2. 测试:提交一个 PR 并合并
  3. 查看 Project,确认自动化生效

📚 延伸阅读


📝 本章小结

你现在学会了:

💡 核心要点

Projects 让项目管理可视化。

使用看板,你可以一眼看出:

  • 哪些任务在做
  • 哪些任务完成了
  • 项目进度如何

← 返回目录  |  ← 上一章  |  下一章 →