Atri Website

Back

1. GitHub Labels 常用命名规范#

在使用 GitHub Labels 时,混乱的命名会让 Issue 面板变得难以维护。一个优秀的命名体系应当具备可读性强易于分类自动排序友好的特点。

目前主流的命名方式主要分为两种:扁平化命名和前缀/范围命名

1.1 扁平化命名 (Flat Naming)#

这是 GitHub 默认的风格,适合小型项目或个人项目。所有标签都是独立的单词,简单直接。

命名格式kebab-case (小写字母,短横线连接)

常用词汇

  • bug
  • enhancement (或 feature)
  • documentation
  • duplicate
  • question

缺点就是:当标签数量超过 10 个时,列表会变得杂乱无章,难以一眼区分类型还是状态。

1.2 前缀/范围命名 (Scoped Naming) —— ⭐️ 推荐#

在中大型开源项目(如 Vue, React, Kubernetes)中,通用的最佳实践是使用 Scoped Naming。通过使用冒号 : 或斜杠 / 将标签分组。

核心优势:GitHub 的标签列表是按字母顺序排序的。使用前缀可以让同一类标签自动聚在一起,视觉上极其整洁。

  • type: ... (变更类型)
    • 定义 “这到底是一个什么性质的改动”。
    • 示例:type: bug, type: feature, type: chore, type: refactor
  • status: ... (当前状态)
    • 定义 Issue 目前处于生命周期的哪个阶段。
    • 示例:status: pending, status: help wanted, status: wontfix
  • priority: ... (优先级)
    • 定义处理的紧急程度。
    • 示例:priority: high, priority: medium, priority: low
  • area: ... (涉及领域/组件)
    • 区分前后端或不同模块。
    • 示例:area: frontend, area: backend, area: database

1.3 常用命名清单#

无论你选择扁平化还是带前缀,这些关键词是业界通用的 “标准词汇”,建议直接采纳:

1.3.1. 代码变更类 (对应 Git Commit 类型)#

  • bug / fix:错误修复
  • feat / feature:新功能
  • docs / documentation: 文档
  • style: 格式(空格、分号等)
  • refactor: 代码重构
  • perf / performance: 性能优化
  • test: 测试相关
  • chore: 构建/杂项

1.3.1. 流程管理类#

  • wontfix: 不予修复
  • duplicate: 重复
  • invalid: 无效
  • question: 咨询/提问

1.3.2. 社区友好类#

  • good first issue: 适合新手
  • help wanted: 需要帮助

2. Label 的描述#

在 GitHub 中,Label 的 Description(描述) 非常重要。当鼠标悬停在标签上时,会显示这段文字。一段清晰的描述能帮助贡献者(尤其是新手)快速理解标签的含义,避免乱贴标签。

1

Label 的名称通常很简短(如 chore),可能无法完全传达语境。Description 的作用就是补充说明 “什么情况下该用这个标签”。

以下是常用标签的标准英文描述(与 GitHub 默认预设保持一致)及其对应的中文释义:

2.1 代码变更类#

这一类标签直接对应代码库的修改性质,通常与 Git Commit Message 的规范(如 Conventional Commits)保持一致。

Label 名称Description中文释义
bugSomething isn’t working.程序故障,预期行为与实际运行结果不一致。
enhancementNew feature or request.新功能/需求,建议添加新特性或改进现有功能。
refactorRefactor structure. (Code changes that neither fix a bug nor add a feature)代码重构。修改代码结构,但不改变其外部行为(非修复 Bug 也非新增功能)。

2.2 维护与杂项类#

这一类标签通常不涉及核心业务逻辑,属于后勤工作。

Label 名称Description中文释义
choreRoutine tasks, maintenance, and build process updates.杂项/构建。常规任务、维护工作以及构建流程/工具的更新。
documentationImprovements or additions to documentation.文档变更。仅对文档(README, Wiki, 注释)进行的改进或补充。
styleAdjust code style.格式调整。不影响代码含义的修改(如空格、缩进、分号等)。
testAdding missing tests or correcting existing tests.测试相关。补充缺失的测试用例或修正现有的测试。

2.3 流程管理类#

这类标签通常由维护者使用,用于管理 Issue 的生命周期。

Label 名称Description中文释义
duplicateThis issue or pull request already exists.重复。该问题或请求已存在,通常会关闭此 Issue 并指向原链接。
invalidThis doesn’t seem right.无效。描述不清、无法复现或非本项目问题。
wontfixThis will not be worked on.不予修复。经评估后决定不处理此问题(设计如此或超出范围)。

2.4 社区交互类#

这类标签用于引导社区参与和沟通。

Label 名称Description中文释义
good first issueGood for newcomers.新手友好。任务简单明确,适合第一次参与开源贡献的新人。
help wantedExtra attention is needed.寻求帮助。维护者无法独立完成,需要社区提供额外关注或协助。
questionFurther information is requested.咨询/提问。用户提出的使用疑问,或需要进一步提供信息的请求。

📝:

在设置 Label Description 时,建议直接使用英文。

虽然团队可能全是中国人,但 GitHub 的 UI 语境是英文的,且开源项目通常面向全球。使用标准的英文描述(如上表所示)能让你的项目显得更专业、更符合国际惯例。

3. 常用 Label 的具体作用与语义详解#

给 Issue 打标签不仅仅是为了好看,更重要的是为了快速筛选定义上下文。一个精准的标签能让维护者在 1 秒钟内判断出这是一个需要紧急修复的 Bug,还是一个可以在周末慢慢处理的代码优化。

以下是四大类标签的详细语义说明:

3.1 代码变更类#

这一类标签直接对应代码库的修改性质,通常与 Git Commit Message 的规范(如 Conventional Commits)保持一致。

🐛 bug#

  • 含义:错误修复
  • 场景:当软件的行为与预期不符,例如:点击按钮没反应、页面崩溃、数据计算错误。
  • 作用:通常拥有较高的优先级,提示开发者需要进行“修复”工作。

✨ feat ( enhancement )#

  • 含义:新功能或特性改进。
  • 场景:用户请求添加一个新按钮、支持一种新语言、或者让现有的搜索功能支持模糊匹配。
  • 作用:代表这是一个增量开发,通常需要经过设计和评审。

🔨 refactor#

  • 含义:代码重构。
  • 场景:你觉得现在的代码写得很烂(Spaghetti Code),想要重新组织目录结构、提取公共函数、或者优化类的继承关系。
  • 关键点:重构不应改变软件对外的表现。既不修复 Bug 也不增加新功能,只是让代码更健康。

🚀 perf ( performance )#

  • 含义:性能优化。
  • 场景:页面加载太慢、内存占用过高、数据库查询延迟大。
  • 作用:专门针对快和省的改进。

3.2 维护与杂项类 (Maintenance)#

这一类标签通常不涉及核心业务逻辑,属于后勤工作。

📚 docs (documentation)#

  • 含义:文档变更。
  • 场景:修改 README.md、编写 Wiki、更新 API 文档,或者仅仅是修正代码中的注释拼写错误。
  • 作用:提示 Reviewer 这次提交不包含代码逻辑,审核起来非常快。

🎨 style#

  • 含义:代码格式/风格调整。
  • 场景:注意,这不是指 CSS 样式修改。 它指的是:加减空格、缩进调整、补全分号、统一变量命名风格等。
  • 作用:对代码运行逻辑无影响的“美容”工作。

⚙️ chore#

  • 含义:杂项/构建过程更新。
  • 场景:升级 package.json 中的依赖版本、修改 .gitignore 文件、调整 Webpack/Vite 配置、配置 CI/CD 脚本。
  • 作用:代表这是底层的配置变动,不影响业务代码。

3.3 流程管理类#

这一类标签用于描述 Issue 的生命周期状态。

❌ wontfix#

  • 含义:不予修复/不会处理。
  • 场景:用户提了一个需求,但维护者认为这超出了项目范围,或者技术上不可行,或者投入产出比太低。
  • 作用:这是一个明确的拒绝信号,虽然残酷但能节省双方时间。

🔁 duplicate#

  • 含义:重复的问题。
  • 场景:两个用户报告了同一个 Bug,或者提了同一个功能建议。
  • 作用:保留一个主 Issue,关闭其他的并标记为 duplicate,集中讨论。

⚠️ invalid#

  • 含义:无效的问题。
  • 场景:用户描述不清、无法复现、或者纯粹是用户自己操作失误导致的伪 Bug。

❓ question#

  • 含义:咨询/提问。
  • 场景:这不是代码问题,而是用户在问 “这个库怎么用?”或 “能不能支持 Windows?”
  • 作用:这类 Issue 通常通过讨论解决,不需要提交代码 PR。

3.4 社区交互类#

这一类标签专门用来招揽开源贡献者

👋 good first issue#

  • 含义:适合新手的第一张任务卡
  • 场景:任务非常简单(比如修改一个错别字、简单替换一个函数),不需要深入了解整个项目架构就能完成。
  • 作用:这是开源项目吸引新人的金字招牌

🆘 help wanted#

  • 含义:需要社区帮助。
  • 场景:维护者在这个问题上卡住了,或者忙不过来,明确表示“谁有空谁来做,我接受 PR”。
  • 作用:向社区发出的求救或邀请信号。

Label 的常用颜色#

请注意:颜色的选择不是为了 “好看”,而是为了 “语义化”。优秀的配色方案能让开发人员在扫视 Issue 列表时,瞬间通过颜色判断出任务的性质和紧急程度。

GitHub 的 Label 颜色不仅是装饰,它应当遵循一定的视觉语义心理学。例如,红色通常代表 “危险/紧急”,绿色代表 “新增/通过”,灰色代表 “被忽略/背景化”。

4.1 代码变更类#

使用鲜明的对比色,区分修复与新增。

LabelHex Code预览语义色彩分析
bug#d73a49🔴 红色警示/紧急。红色在任何 UI 中都代表错误或危险,能第一时间抓住眼球。
enhancement#a2eeef🟢 青色清新/生长。青色或蓝绿色让人联想到新事物,给人积极的感觉。
refactor#f29513🟠 橙色施工/注意。橙色通常用于“施工中”的标志,代表代码结构正在发生变化。
perf#d4c5f9🟣 淡紫深度/优化。紫色在科技界常代表深层技术或高阶优化。

4.2. 维护与杂项类#

使用柔和、中性或冷色调,避免喧宾夺主。

LabelHex Code预览语义色彩分析
documentation#0075ca🔵 蓝色信息/理性。蓝色通常代表说明书、文档或中立的信息展示。
chore#808080⚪ 灰色背景/基础。灰色代表 “不起眼”,表明这些任务不涉及业务逻辑,属于后台工作。
style#ff69b4🌸 粉色装饰/外观。粉色鲜艳但不具侵略性,非常适合代表 “格式化” 这种轻松的修改。
test#fbca04🟡 黄色检查/警告。黄色常用于测试环境或 CI 警告,提醒人们注意质量保证。

4.3. 流程管理类#

使用低饱和度或“终止感”的颜色,表示关闭或无效状态。

LabelHex Code预览语义色彩分析
duplicate#cfd3d7🌫 浅灰忽略。浅灰色几乎与背景融合,表示这个 Issue 不需要被关注。
invalid#e4e669🍋 芥末黄存疑。这种暗黄色带有一种“不正确”或“甚至算不上警告”的意味。
wontfix#ffffff🏳️ 白色放弃。白色(或带边框的白)代表投降或结束,意味着该 Issue 已停止处理。

4.4. 社区交互类#

使用友好、包容度高的颜色,吸引点击与互动。

LabelHex Code预览语义色彩分析
good first issue#7057ff🟣 紫色友好/神秘。紫色常用于代表“特殊的”或“值得探索的”,吸引新手点击。
help wanted#008672🌲 深绿通行/请求。深绿色代表“绿灯”,意味着项目维护者对外部贡献一路绿灯放行。
question#d876e3🍬 洋红交流。介于紫色和粉色之间,代表非正式的代码讨论。
Label Create
Author Juyao Huang
Published at December 26, 2025
Comment seems to stuck. Try to refresh?✨