Back to Skills

git-flow

verified

当用户用自然语言请求提交代码时触发(如「帮我提交」「commit 一下」「提交代码」)。自动应用 Git 提交规范,从分支名提取任务 ID,生成符合规范的提交信息。

View on GitHub

Marketplace

taptap-plugins

taptap/claude-plugins-marketplace

Plugin

git

version-control

Repository

taptap/claude-plugins-marketplace
1stars

plugins/git/skills/git-flow/SKILL.md

Last Verified

January 23, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/taptap/claude-plugins-marketplace/blob/main/plugins/git/skills/git-flow/SKILL.md -a claude-code --skill git-flow

Installation paths:

Claude
.claude/skills/git-flow/
Powered by add-skill CLI

Instructions

# Git 提交辅助

当用户用自然语言请求提交代码时,自动应用此 skill。

## 触发场景

用户消息包含以下关键词时触发:
- 「帮我提交」「提交一下」「提交代码」
- 「commit」「commit 一下」
- 「推送」「push」
- 「创建 MR」「创建合并请求」

## 执行流程

### 1. 检查分支

**检测仓库默认分支(三级检测 + 用户确认):**

详细步骤参见:[reference.md](./reference.md#检测默认分支三级检测--用户确认)

**简要说明:**
1. 首先尝试:`git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'`
2. 如失败,依次检查 main/master/develop 分支是否存在
3. 如仍失败,使用 `AskUserQuestion` 询问用户选择基准分支

**获取当前分支:**
```bash
git branch --show-current
```

**如果当前在默认分支(main/master/develop 等):**
- 检查用户消息是否包含任务 ID(TAP-xxx)或飞书链接
- 如果有:询问分支描述,创建工作分支
  ```bash
  # 获取远程最新代码
  git fetch origin
  
  # 基于远程默认分支创建新分支
  new_branch="feat/TAP-xxxxx-description"
  if ! git checkout -b "$new_branch" "origin/$default_branch"; then
    echo "❌ 创建分支失败"
    echo "💡 请先处理本地修改:git stash 或 git commit"
    exit 1
  fi
  ```
- 如果没有:提示用户需要提供任务工单链接或 ID

### 2. 分析变更

```bash
git status
git diff HEAD --stat
git diff --cached
```

### 3. 提取任务 ID

详细步骤参见:[reference.md](./reference.md#任务ID提取)

**概要:** 按优先级从分支名、用户输入、用户询问中获取任务 ID
(若需使用 `no-ticket`,必须先与用户确认是否为纯文档/配置等非功能性变更;否则要求用户提供/创建工单 ID)

### 4. 生成提交信息

详细规范参见:[reference.md](./reference.md#commit信息生成规范)

**格式:** `type(scope): 中文描述 #TASK-ID`

**Type 和 Description 规范:** 详细参见 [reference.md](./reference.md#提交信息规范)

### 5. 执行提交

```bash
git add <files>  # 排除 .env、credentials 等敏感文件
git commit -m "type(scope): 中文描述 #TASK-ID"
```

### 6. 可选:推送并创建 MR

如果用户请求推送或创建 MR:

**策略(与 `/git:commit-push-pr` 保持一致):glab 优先,失败则 fallback 到 push options**

1. **检测 glab 是否可用**:
```bash
which glab && glab auth status
```

**安全限制(严格禁止):**
- `glab mr approve` - 禁止自动审批
- `glab mr merge` - 禁止自动合并

2. **准备 MR 标题和描述(模板优先)**:
- **MR Title**:优先使用最新 commit 标题(`git log -1 --pretty=%s`)
- **MR Description**:从 commit message 汇总生成(与 command 一致),并按以下规则填充 MR 模板:
  - 优先模板:`.gitlab/merge_request_templates/default.md`
  - 兼容模板:`.gitlab/merge_request_templates/Default.md`
  - 填充规则:替换模板中 `## Description` 与下一个 `## ` 标题之间的内容;若模板没有 `## Description`,则在顶部插入

3. **推送并创建 MR**:

**如果 gla

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
3699 chars