mcpField
G
git-merge-to-dev

git-merge-to-dev

github.com/chann开发048 次安装4 周前更新
代码仓库

关于 git-merge-to-dev

git-merge-to-dev 是一项将当前分支合并到本地 dev 或 develop 分支的技能,供需要按开发分支流程整合代码的开发者使用。它要求先展示合并计划并等待确认,并仅安全删除未受保护的源分支。

主要功能

  1. 01优先选择 dev,备选 develop
  2. 02合并前展示计划并确认
  3. 03处理合并冲突时不自动解决
  4. 04仅用 -d 安全删除源分支
  5. 05保护指定分支并跳过删除

适用场景

  1. 01将功能分支合并到 dev
  2. 02在没有 dev 时合并到 develop
  3. 03合并 staging 等受保护源分支但保留它

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chann/skills --skill git-merge-to-dev

安装后在 Claude Code 中输入/git-merge-to-dev确认已加载。

附带文件agents/openai.yamlevals/evals.json

详细介绍

Git Merge to Dev

概述

这是 git-merge-to-main 的变体,目标分支为 dev(优先)或 develop(备用)。将当前分支合并到 dev 分支,然后安全删除源分支,除非源分支受保护。

开始时声明:“我将使用 git-merge-to-dev 技能把 <source-branch> 合并到 <target>,并在源分支未受保护时将其删除。”

目标分支解析

按以下顺序确定要合并到哪个分支:

  1. 如果本地存在 dev → 目标分支 = dev
  2. 否则,如果本地存在 develop → 目标分支 = develop
  3. 否则 → 中止:“本地未找到 dev 或 develop 分支。请创建一个分支,或使用 git-merge-to-main。”
if git rev-parse --verify dev >/dev/null 2>&1; then
  target=dev
elif git rev-parse --verify develop >/dev/null 2>&1; then
  target=develop
else
  echo "No dev or develop branch found locally; aborting." >&2
  exit 1
fi

继续操作前,先明确说出解析出的目标分支,让用户有机会纠正你。

工作流

开始前,阅读主 git-merge-to-main SKILL.md,路径为 <plugin-root>/skills/git-merge-to-main/SKILL.md。严格遵循该工作流,凡是提到 main 的地方都替换为解析出的 $target。前置条件、计划/确认步骤、受保护源分支的处理、冲突处理、安全删除规则(git branch -d,绝不使用 -D)以及合并后的总结均完全适用。

受保护的源分支包括:main、master、dev、develop、development、stg、stage、staging、root。如果 src 是受保护的源分支,确认后执行合并,但跳过本地删除,不运行 git branch -d "$src"。

关键替换:

在 git-merge-to-main 中在此技能中
前置条件 3:当前分支 ≠ main当前分支 ≠ $target
前置条件 5:本地存在 main本地存在 $target(dev 或 develop)
git checkout maingit checkout "$target"
git merge "$src"(合并到 main)git merge "$src"(合并到 $target)
git fetch origin main(检查分歧)git fetch origin "$target"(检查分歧)

合并冲突规则、-d 而非 -D 规则、禁止自动推送规则以及 Red Flags 列表均相同。

展示计划时,仅在源分支未受保护时包含删除步骤。对于受保护的源分支,展示:

  3. skip the local delete for protected source branch $src

操作示例

User: dev에 머지해줘

Resolution: dev exists → target = dev
Source: feature/payments

Plan:
  1. git checkout dev
  2. git merge feature/payments
  3. git branch -d feature/payments

User confirms.
→ checkout dev, merge succeeds (fast-forward), delete branch.
→ Remind user to push dev when ready.

受保护源分支示例:

User: staging을 dev에 머지해줘

Resolution: dev exists → target = dev
Source: staging (protected)

Plan:
  1. git checkout dev
  2. git merge staging
  3. skip the local delete for protected source branch staging

User confirms.
→ checkout dev, merge succeeds, keep staging locally.
→ Remind user to push dev when ready.

红线

与 git-merge-to-main 中的 Never/Always 列表相同。特别是:

  • 绝不使用 -D(强制删除)——只能使用 -d(安全删除)
  • 绝不删除受保护的源分支(main、master、dev、develop、development、stg、stage、staging、root)
  • 绝不自动解决合并冲突
  • 绝不自动推送或自动拉取目标分支
  • 始终在合并前说明解析出的目标分支是 dev 还是 develop
  • 始终展示计划并等待确认
  • 始终识别受保护的源分支并跳过本地删除

集成

配合使用:

  • git-commit / git-commit-push — 先提交工作树更改
  • git-merge-to-main — 相同模式,目标为 main
  • git-branch-cleanup — 批量删除已合并到 dev 分支的其他分支

**调用方式:**仅由用户手动调用。绝不在其他技能的工作流中自动运行。

评论

支持 Markdown