merge について
現在のブランチの変更をコミットし、ローカルのベースブランチへリベースしてから workmux でマージするスキルです。オプションでクリーンアップや検証を制御できます。
主な機能
- 01作業ツリーの変更をすべてコミット
- 02設定済みのローカルベースへリベース
- 03workmux によるマージ
- 04保持・検証省略フラグに対応
活用シーン
- 01完了した機能ブランチの仕上げ
- 02マージ後もワークツリーを保持
- 03必要に応じたマージ検証の省略
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ raine/ workmux --skill mergeインストール後、Claude Code で/mergeを入力して読み込まれたか確認します。
詳細
引数: $ARGUMENTS
引数に含まれるフラグを確認します。
--keep、-k→workmux mergeに--keepを渡します(マージ後もワークツリーと tmux ウィンドウを保持します)--no-verify、-n→workmux mergeに--no-verifyを渡します
引数からすべてのフラグを取り除きます。
現在のブランチをコミットし、リベースして、マージします。
このコマンドは、次の手順で現在のブランチの作業を完了します。
- 未コミットの変更をすべてコミットする
- ベースブランチにリベースする
workmux mergeを実行してマージし、後片付けを行う
ステップ 1:コミット
git status --porcelain で、ステージ済み、未ステージ、未追跡の変更を確認します。
変更がある場合は、git add -A ですべてをステージし、ステージ済みの差分を確認してからコミットします。小文字の命令形を使い、一般的なコミットプレフィックスは付けません。
作業ツリーがクリーンな場合はスキップします。
ステップ 2:リベース
git config からベースブランチを取得します。
git config --local --get "branch.$(git branch --show-current).workmux-base"
ベースブランチが設定されていない場合は、「main」をデフォルトとして使用します。
ローカルのベースブランチにリベースします(先に origin からフェッチしてはいけません)。
git rebase <base-branch>
重要:git fetch は実行しないでください。origin/<branch> にリベースしないでください。ローカルのブランチ名にのみリベースしてください(例:git rebase origin/main ではなく、git rebase main)。
競合が発生した場合:
- 競合の解決に着手する前に、ベースブランチで各競合ファイルにどのような変更が加えられたかを確認します
- 競合しているファイルごとに、
git log -p -n 3 <base-branch> -- <file>を実行し、ベースブランチにおけるそのファイルの最近の変更を確認します - 目的は、ベースブランチの変更と自分のブランチの変更の両方を保持することです
- 各競合を解決した後、ファイルをステージして
git rebase --continueを実行します - 競合が複雑すぎる場合や、内容が不明確な場合は、作業を進める前に指示を求めます
ステップ 3:マージ
次を実行します:workmux merge --rebase --notification [--keep] [--no-verify]
引数に --keep フラグが渡された場合にのみ、--keep を含めます。
引数に --no-verify フラグが渡された場合にのみ、--no-verify を含めます。
これにより、ブランチがベースブランチにマージされ、ワークツリーと tmux ウィンドウが後片付けされます(--keep を使用した場合を除く)。