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. 01devを優先し、なければdevelopを選択
  2. 02マージ計画の提示と確認
  3. 03マージコンフリクトを自動解決しない
  4. 04元ブランチを-dで安全に削除
  5. 05保護ブランチの削除を省略

活用シーン

  1. 01機能ブランチをdevへマージ
  2. 02ローカルにdevがない場合にdevelopを使用
  3. 03保護対象の元ブランチを残してマージ

インストール

コマンドをコピーしてターミナルで実行します。

$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.

Red Flags

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 ブランチにすでにマージされた他のブランチをまとめて削除します。

呼び出し元: ユーザーによる手動実行のみ。他のスキルのワークフロー中に自動実行してはいけません。

コメント