mcpField
C
create-branch

create-branch

github.com/ruchernchong开发1.3k 次安装
代码仓库

关于 create-branch

create-branch 是用于 Git 仓库的分支创建技能,面向需要按团队约定管理分支的开发者。它可根据 GitHub Issue 创建关联分支,或验证并规范化手动提供的名称。

主要功能

  1. 01优先使用 GitHub Issue 创建关联分支
  2. 02根据关键词自动添加分支前缀
  3. 03规范化并验证分支名称
  4. 04检查本地和远程分支重名

适用场景

  1. 01为 GitHub Issue 创建并检出分支
  2. 02按任务类型整理新分支名称
  3. 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 开发工作流:

  1. 检查 GitHub CLI 是否可用:

    gh --version
    

    如果不可用,请告知用户并改为手动创建分支。

  2. 验证 issue 是否存在:

    gh issue view <issue-number>
    

    显示 issue 标题和状态以供确认。

  3. 创建与 issue 关联的分支:

    gh issue develop <issue-number> -c
    
    • -c 标志会自动切换到新建的分支
    • GitHub 会根据 issue 标题自动生成合适的分支名称
    • 该分支会关联到 issue,便于跟踪项目进度
  4. 跳转到远程推送步骤(下方步骤 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. 确定基准分支

使用智能默认值:

  1. 检查 main 是否存在:

    git rev-parse --verify main
    
  2. 如果不存在,检查 master 是否存在:

    git rev-parse --verify master
    
  3. 如果两者都不存在,则使用当前 HEAD

  4. 如有需要,允许用户指定其他基准分支(创建前询问)

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

最佳实践

  1. 提及 Issue 编号时,始终优先采用 GitHub Issue 工作流
  2. 创建分支前进行全面验证,以避免 git 错误
  3. 使用描述性名称,清楚表明分支用途
  4. 遵循团队约定——检查现有分支名称,了解命名模式
  5. 尽早推送到远程仓库,以便备份和协作
  6. 尽可能将分支关联到 Issue,以便更好地跟踪项目进度

评论

支持 Markdown