关于 create-branch
create-branch 是用于 Git 仓库的分支创建技能,面向需要按团队约定管理分支的开发者。它可根据 GitHub Issue 创建关联分支,或验证并规范化手动提供的名称。
主要功能
- 01优先使用 GitHub Issue 创建关联分支
- 02根据关键词自动添加分支前缀
- 03规范化并验证分支名称
- 04检查本地和远程分支重名
适用场景
- 01为 GitHub Issue 创建并检出分支
- 02按任务类型整理新分支名称
- 03创建前检查分支名冲突
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruchernchong/ claude-kit --skill create-branch安装后在 Claude Code 中输入/create-branch确认已加载。
详细介绍
语言规范
根据项目推断语言风格:
- 分析现有分支、提交消息和文档,判断项目使用的英语变体(美式英语、英式英语等)
- 遵循项目中使用的拼写规范(例如,“synchronize”与“synchronise”、“center”与“centre”)
- 在分支名称和命令输出中始终保持项目既定的语言风格
创建分支命令
此命令会创建并切换到一个新的 git 分支,并进行智能验证和 GitHub issue 集成。
优先级:GitHub issue 集成
重要:如果用户提供了 issue 编号(例如,“#123”、“123”或“issue 123”),始终优先使用 GitHub CLI 的 issue 开发工作流:
-
检查 GitHub CLI 是否可用:
gh --version如果不可用,请告知用户并改为手动创建分支。
-
验证 issue 是否存在:
gh issue view <issue-number>显示 issue 标题和状态以供确认。
-
创建与 issue 关联的分支:
gh issue develop <issue-number> -c-c标志会自动切换到新建的分支- GitHub 会根据 issue 标题自动生成合适的分支名称
- 该分支会关联到 issue,便于跟踪项目进度
-
跳转到远程推送步骤(下方步骤 8)
手动创建分支工作流
如果未提供 issue 编号,请按以下工作流操作:
1. 检查仓库状态
git status
确认:
- 工作目录干净,或存在可接受的未提交更改
- 当前分支信息
- 当前是否位于 git 仓库中
2. 获取分支名称
询问用户想要的分支名称。接受任何格式的输入,命令会负责格式化和验证。
3. 自动检测并应用前缀
分析分支名称输入中的关键词,并自动添加合适的前缀:
- feature/ - 关键词:“add”、“implement”、“create”、“new”、“feature”
- bugfix/ - 关键词:“fix”、“bug”、“resolve”、“patch”、“repair”
- hotfix/ - 关键词:“hotfix”、“urgent”、“critical”、“emergency”
- chore/ - 关键词:“chore”、“refactor”、“update”、“upgrade”、“maintain”
- docs/ - 关键词:“docs”、“documentation”、“readme”、“guide”
如果用户的输入已以可识别的前缀(feature/、bugfix/ 等)开头,则保持原样。
4. 验证分支名称
进行全面验证:
强制使用 Kebab-Case
- 转换为小写
- 将空格和下划线替换为连字符
- 确保格式为:
prefix/kebab-case-name
字符验证
拒绝包含以下内容的分支名称:
- 空格(转换为连字符)
- 特殊字符:
~、^、:、?、*、[、]、\、@{、.. - 控制字符或非 ASCII 字符(连字符和斜杠除外)
- 开头或结尾处的斜杠或连字符
长度验证
- 最短:3 个字符(不包括前缀)
- 最长:100 个字符(总长度)
5. 检查重复项
检查本地和远程分支:
# Check local branches
git branch --list "<branch-name>"
# Check remote branches
git ls-remote --heads origin "<branch-name>"
如果分支已存在:
- 本地:提出改为切换到现有分支
- 远程:警告用户并建议使用其他名称
- 两者都存在:告知用户,并询问是要切换分支还是选择其他名称
6. 确定基准分支
使用智能默认值:
-
检查
main是否存在:git rev-parse --verify main -
如果不存在,检查
master是否存在:git rev-parse --verify master -
如果两者都不存在,则使用当前 HEAD
-
如有需要,允许用户指定其他基准分支(创建前询问)
7. 创建并切换分支
git checkout -b <validated-branch-name> <base-branch>
成功创建后,显示以下信息以供确认:
- 分支名称
- 使用的基准分支
- 当前状态
8. 远程推送建议
询问用户:“是否要将此分支推送到远程,并设置跟踪关系?”
如果是:
git push -u origin <branch-name>
这样可以:
- 远程备份分支
- 与团队成员协作
- 使用 GitHub PR 创建工作流
- 在 GitHub UI 中查看分支
错误处理
提供清晰、可操作的错误消息:
- 不是 git 仓库:"此目录不是 git 仓库。请使用
git init初始化仓库,或切换到某个仓库目录。" - GitHub CLI 不可用:"未安装 GitHub CLI(
gh)。请从 https://cli.github.com 安装,或手动创建分支。" - 未找到 Issue:"未找到 Issue #123。请检查 Issue 编号,或手动创建分支。"
- 分支名称无效:"分支名称包含无效字符。建议使用:
feature/valid-branch-name" - 分支已存在:"分支
feature/existing已存在。请使用git checkout feature/existing切换到该分支,或选择其他名称。" - 网络问题:"无法检查远程分支。将仅在本地创建分支。"
示例
示例 1:GitHub Issue 集成
User: "Create a branch for issue #456"
Command: gh issue view 456
Output: #456 - Add user authentication (open)
Command: gh issue develop 456 -c
Output: Created and checked out branch: feature/456-add-user-authentication
示例 2:使用自动前缀的手动方式
User: "Create branch: fix login bug"
Analysis: Contains "fix" → apply "bugfix/" prefix
Validated: "bugfix/login-bug"
Command: git checkout -b bugfix/login-bug main
示例 3:自定义前缀
User: "Create branch: docs/update readme"
Analysis: Already has "docs/" prefix → keep as-is
Validated: "docs/update-readme"
Command: git checkout -b docs/update-readme main
最佳实践
- 提及 Issue 编号时,始终优先采用 GitHub Issue 工作流
- 创建分支前进行全面验证,以避免 git 错误
- 使用描述性名称,清楚表明分支用途
- 遵循团队约定——检查现有分支名称,了解命名模式
- 尽早推送到远程仓库,以便备份和协作
- 尽可能将分支关联到 Issue,以便更好地跟踪项目进度
评论
支持 Markdown