Skip to main content
ClaudeWave
Skill2.2k estrellas del repoactualizado today

merge

The merge skill automates code integration from a feature branch to a target branch (typically main) using GitLab's merge request workflow. Use this skill when you need to submit code changes for review, monitor CI/CD pipeline execution, handle pipeline failures, and finally merge approved code while cleaning up associated branches and worktrees.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/AgentsMesh/AgentsMesh /tmp/merge && cp -r /tmp/merge/.claude/skills/merge ~/.claude/skills/merge
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# 合并代码流程

将当前分支的代码通过 Merge Request 合并到目标分支。

## 使用流程

### 1. 确认状态

```bash
# 检查当前分支和未提交的更改
git status
git branch --show-current

# 确认目标分支(默认 main)
```

### 2. 提交代码

如有未提交的更改,先提交:

```bash
# 添加所有更改
git add .

# 提交(使用有意义的 commit message)
git commit -m "feat/fix/refactor: 描述更改内容"

# 推送到远程
git push -u origin <current-branch>
```

### 3. 创建 Merge Request

使用 `glab` 创建 MR:

```bash
# 创建 MR 到 main 分支
glab mr create --target-branch main --title "MR标题" --description "描述" --fill

# 或者使用简化命令(自动填充信息)
glab mr create -f
```

记录返回的 MR 编号(如 `!123`)。

### 4. 监控 Pipeline

创建 MR 后,监控 Pipeline 执行状态:

```bash
# 查看 Pipeline 状态
glab ci status

# 或查看 MR 状态
glab mr view <mr-number>
```

### 5. 处理 Pipeline 失败

如果 Pipeline 失败:

```bash
# 1. 查看失败原因
glab ci status
glab ci view  # 查看详细日志

# 2. 根据错误修复代码
# ... 修复代码 ...

# 3. 提交修复
git add .
git commit -m "fix: 修复 CI 错误"
git push

# 4. 重新检查 Pipeline
glab ci status
```

重复此过程直到 Pipeline 通过。

### 6. 合并 MR

Pipeline 通过后,合并 MR:

```bash
# 合并(squash commits)
glab mr merge <mr-number> --squash

# 或直接合并
glab mr merge <mr-number>
```

### 7. 清理(可选)

合并成功后,清理本地分支和 worktree:

```bash
# 切回主仓库
cd /path/to/AgentsMesh

# 删除远程分支(MR 合并时通常自动删除)
git push origin --delete <branch-name>

# 删除本地分支
git branch -d <branch-name>

# 如果是 worktree,删除 worktree
git worktree remove ../AgentsMesh-Worktrees/<dir-name>
```

## 完整示例

用户说:"把当前分支合并到 main"

执行:
```bash
# 1. 检查状态
git status
git branch --show-current
# 假设当前分支是 feature/user-auth

# 2. 提交并推送
git add .
git commit -m "feat: add user authentication"
git push -u origin feature/user-auth

# 3. 创建 MR
glab mr create --target-branch main --fill
# 返回: !42

# 4. 监控 Pipeline
glab ci status --live
# 等待 Pipeline 完成...

# 5. 如果失败,修复后重新推送
# git add . && git commit -m "fix: ..." && git push

# 6. Pipeline 通过后合并
glab mr merge 42 --squash

# 7. 清理
cd /path/to/AgentsMesh
git worktree remove ../AgentsMesh-Worktrees/feature-user-auth
```

## 完成后输出

```
✅ MR !42 已成功合并到 main

合并详情:
- 分支: feature/user-auth → main
- Pipeline: passed
- 合并方式: squash

已清理:
- 远程分支: feature/user-auth (已删除)
- Worktree: ../AgentsMesh-Worktrees/feature-user-auth (已删除)
```

## 常用命令速查

| 操作 | 命令 |
|------|------|
| 查看 MR 列表 | `glab mr list` |
| 查看 MR 详情 | `glab mr view <number>` |
| 查看 Pipeline | `glab ci status` |
| 查看 CI 日志 | `glab ci view` |
| 合并 MR | `glab mr merge <number>` |
| 关闭 MR | `glab mr close <number>` |

## 注意事项

- 提交前确保代码已通过本地测试
- MR 标题应清晰描述更改内容
- Pipeline 失败时仔细阅读错误日志
- 合并前确认没有冲突
- 使用 `--squash` 可将多个 commit 合并为一个
- 合并后及时清理分支和 worktree