关于 git-merge-to-dev
git-merge-to-dev 是一项将当前分支合并到本地 dev 或 develop 分支的技能,供需要按开发分支流程整合代码的开发者使用。它要求先展示合并计划并等待确认,并仅安全删除未受保护的源分支。
主要功能
- 01优先选择 dev,备选 develop
- 02合并前展示计划并确认
- 03处理合并冲突时不自动解决
- 04仅用 -d 安全删除源分支
- 05保护指定分支并跳过删除
适用场景
- 01将功能分支合并到 dev
- 02在没有 dev 时合并到 develop
- 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>,并在源分支未受保护时将其删除。”
目标分支解析
按以下顺序确定要合并到哪个分支:
- 如果本地存在
dev→ 目标分支 =dev - 否则,如果本地存在
develop→ 目标分支 =develop - 否则 → 中止:“本地未找到
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 main | git 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— 相同模式,目标为maingit-branch-cleanup— 批量删除已合并到 dev 分支的其他分支
**调用方式:**仅由用户手动调用。绝不在其他技能的工作流中自动运行。