关于 conventional-branch
conventional-branch 面向希望统一 Git 分支命名的开发者,提供分支类型选择、名称校验、基准分支检测和创建分支的指引。
主要功能
- 01Conventional Branch 命名
- 02用途与 AI Agent 前缀
- 03分支名称校验
- 04检测基准分支
- 05创建并切换分支
适用场景
- 01为功能或修复工作命名分支
- 02创建 AI Agent 分支
- 03检查分支名是否符合规范
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill conventional-branch安装后在 Claude Code 中输入/conventional-branch确认已加载。
详细介绍
Conventional Branch
创建符合 Conventional Branch 规范的 Git 分支,这是一套简单、一致的 Git 分支命名约定。
分支名称格式
<type>/<description>
分支类型
用途前缀 — 描述工作的意图:
| 类型 | 别名 | 用途 |
|---|---|---|
feature/ | feat/ | 新功能或增强 |
bugfix/ | fix/ | 修复错误 |
hotfix/ | — | 紧急生产环境修复 |
release/ | — | 准备发布(版本中允许使用点号:release/v1.2.0) |
chore/ | — | 非代码任务(依赖项、文档、配置) |
AI Agent 来源前缀 — 标识由 AI 编码 Agent 生成的分支:
| 类型 | 别名 | 用途 |
|---|---|---|
ai/ | — | 适用于任何 AI 编码 Agent 的通用前缀 |
copilot/ | — | GitHub Copilot |
cursor/ | — | Cursor |
claude/ | — | Anthropic 的 Claude Code |
codex/ | — | OpenAI Codex |
知道是哪个 Agent 生成分支时,请使用对应厂商的前缀;否则使用厂商中立的备用前缀 ai/。
主干分支
main、master 和 develop 是主干分支,不使用前缀。切勿创建与主干分支同名的新分支;应从主干分支创建分支。
命名规则
- 仅限小写字母 — 任何位置都不得出现大写字母
- 字母数字、连字符和点号 —
a-z、0-9、-、. - 允许使用点号 — 可用于任何描述,通常用于版本号(例如,
release/v1.2.0、chore/upgrade-node-v20.11) - 不得使用下划线、空格或特殊字符
- 不得连续使用连字符(
--)、点号(..)或连字符与点号相邻(-.或.-) - 描述中不得以连字符或点号开头或结尾
有效示例
main
master
develop
feature/add-login-page
feat/add-login-page
bugfix/fix-header-bug
fix/header-bug
hotfix/security-patch
release/v1.2.0
chore/update-dependencies
feature/issue-123-new-login
ai/refactor-auth-flow
copilot/add-login-page
cursor/fix-header-bug
claude/security-patch
codex/optimize-query
无效示例
| 分支 | 问题 |
|---|---|
Feature/Add-Login | 含有大写字母 |
feature/new--login | 连续使用连字符 |
feature/-new-login | 以连字符开头 |
feature/new-login- | 以连字符结尾 |
release/v1.-2.0 | 连字符与点号相邻 |
fix/header bug | 含有空格 |
fix/header_bug | 含有下划线 |
unknown/some-task | 未知前缀类型 |
描述指南
- 使用 kebab-case,包含 2-5 个单词
- 描述清晰且简洁(总长度约 50 个字符)
- 好的示例:
add-oauth-login、fix-header-overflow、update-ci-config - 不好的示例:
fix-bug、new-feature
工作流
按以下步骤操作:
步骤 1 — 确定分支类型
如果尚不明确,请询问用户:
- 分支类型 — 不确定时默认为
feature - 简要描述 — 该分支的用途
如果用户提到工单或问题编号,请将其纳入描述中(例如,feature/issue-123-add-oauth)。
步骤 2 — 验证名称
根据上述命名规则检查组合后的名称。如果有任何规则不符合,请进行修正:
- 全部转换为小写
- 将下划线和空格替换为连字符
- 合并连续的连字符
- 去除开头和结尾的连字符
步骤 3 — 检测基准分支
不同的代码库使用不同的主干分支。检测此代码库使用的是哪一个:
# Prefer the remote's default branch
git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's|^origin/||'
如果没有返回结果,请检查本地存在的主干分支(优先顺序:develop、main、master):
for b in develop main master; do
git show-ref --verify --quiet "refs/heads/$b" && echo "$b" && break
done
步骤 4 — 创建并切换
git checkout <base>
git pull origin <base>
git checkout -b <type>/<description>
步骤 5 — 确认
告知用户:
- 已创建的分支名称
- 用户现在已切换到新分支
- 提醒用户:准备好后运行
git push -u origin <branch-name>
验证
commit-check 可根据此规范验证分支名称。运行 commit-check --branch、使用其 check-branch pre-commit hook,或在 GitHub Actions 中使用 commit-check-action。GitHub rulesets、GitLab、Bitbucket 和 Git hooks 的配置请参见 https://conventionalbranch.org/enforce/。
与 Conventional Commits 的关系
Conventional Branch 与 Conventional Commits 相辅相成:
| Conventional Branch | 典型的 Conventional Commit |
|---|---|
feature/add-login | feat: add login page |
bugfix/fix-header | fix: header overflow on mobile |
chore/update-deps | chore: bump lodash to 5.0 |
release/v1.2.0 | chore: release v1.2.0 |
尽可能让分支类型与提交类型保持一致(例如,feature/* 分支搭配 feat: 提交)。