← ClaudeAtlas

cherry-pick-prlisted

Cherry-pick a merged fix onto an environment branch (qa/staging, release) as a new PR. 明示指示のみで実行する。Use when the same fix must reach qa or staging(qaにも同じ修正を適用・stagingにも反映・cherry-pick).
devbasex/ai-plugins · ★ 1 · AI & Automation · score 71
Install: claude install-skill devbasex/ai-plugins
# cherry-pick PR 作成コマンド featureブランチから指定ベースブランチ(`qa/*`, `staging/*`, `release/*` 等の環境ブランチ)へ、短命ブランチ経由で cherry-pick PR を作成する。同じ修正を複数ブランチへ並行適用する場面全般で、この原則と手順に従う。 ## 使用方法 ``` /ndf:cherry-pick-pr qa/staging /ndf:cherry-pick-pr release/v2 ``` ## なぜ必要か featureブランチに環境ブランチ(`qa/staging`等)を merge して conflict を解消すると、`feature → main` の PR に環境ブランチ固有のコードが混入する(main汚染)。短命ブランチ + cherry-pick で、必要なコミットだけを対象ブランチに届ける。 | 観点 | 正しい順序 | 誤った順序 | |------|-----------|-----------| | 単一ソース | feature ブランチが唯一の正 | 二箇所で実装 | | 一貫性 | cherry-pick で完全一致 | 手書き差分でズレる | | 追跡性 | `-x` で元 commit が明記 | ��連 commit 不明確 | ## 核心ルール 原則は `ndf-policies`「ブランチ運用の原則」に定義されている。本 Skill の処理フローはその原則を手順へ落としたもので、対応は次のとおり。 | 原則 | 対応する処理フロー | |------|------------------| | feature に先に commit し cherry-pick で届ける | 3・6 | | 環境ブランチを feature に merge しない | 「なぜ必要か」 | | push 前に `origin/main` を取り込む | 5 | | マージ済みブランチには push しない | 2 | ## 処理フロー ### 1. 引数・現状確認 - 引数からベースブランチ名を取得(必須。未指定なら確認) - `git branch --show-current` で現在ブランチを取得 ### 2. 既存PRのマージ済みチェック(必須) 同じベースブランチ向けの短命ブランチに既存PRがないか確認する。 ```bash # 同名パターンのブランチでマージ済みPRがないか確認 gh pr list --head "<current-branch>-for-<base-short-name>" --state merged \ --json number,mergedAt --jq '.[]' ``` マージ済みPRが見つかった場合、**同じブランチ名は使えない**。サフィックスを付ける(例: `-v2`, `-v3`)。 ### 3. コミット一覧の確認 ```bash git log --oneline main..HEAD ``` ユーザーに cherry-pick 対象コミットを確認(全コミット or 選択)。 ### 4. 短命ブランチ作成 ```bash git fetch origin <base-branch> git checkout -b <current-branch>-for-<base-short-name> origin/<base-branch> ``` - `<ba