askill
git-merge

git-mergeSafety --Repository

Git マージワークフローの実行。feature ブランチを main にマージしてプッシュする。Use when user wants to merge to main, integrate changes to main branch, or complete a feature branch.

0 stars
1.2k downloads
Updated 2/16/2026

Package Files

Loading files...
SKILL.md

Git Merge スキル

Instructions

このスキルは feature ブランチを main にマージしてプッシュする全ワークフローを提供します。

重要: git コマンドは作業ディレクトリで直接実行する。git -C は使用禁止。

実行フロー

1. 事前確認(並列実行)

以下の git コマンドを並列で実行し、現在の状態を把握する:

git status                        # ワーキングツリーの状態
git branch --show-current         # カレントブランチ
git fetch origin main             # リモート main を最新化
git log main..HEAD --oneline      # マージ対象コミット一覧

2. 安全性チェック

以下の条件を確認:

チェック失敗時の動作
ワーキングツリーがダーティエラー終了、コミット or stash を促す
カレントブランチが mainエラー終了、feature ブランチから実行を促す
マージ対象コミットがない警告表示、ユーザー確認を求める
コンフリクトの可能性警告表示、ユーザー確認を求める
コンフリクト可能性の事前チェック
# main との共通祖先を取得
git merge-base main HEAD

# 差分ファイル一覧
git diff --stat main...HEAD

2.5. ユーザー確認(重要)

マージを実行する前に、必ず AskUserQuestion ツールを使用して以下を確認する:

  • header: "マージ確認"
  • question: "main ブランチへのマージとプッシュを実行してよろしいですか?"
  • description: マージ対象ブランチ、マージ対象コミット数、変更ファイル数を含める
  • options:
    • "はい、マージを実行": 処理を続行
    • "いいえ、中止する": 処理を中止

確認が取れた場合のみ、次のマージ実行フローに進む。 確認なしでの実行は禁止。

3. マージ実行フロー

# 元のブランチを保存
FEATURE_BRANCH=$(git branch --show-current)

# main に切り替え(フック回避が必要)
GIT_ACTIONS_ALLOW_PROTECTED_BRANCH=1 git checkout main

# リモートから最新取得
git pull origin main

# feature ブランチをマージ(--no-ff でマージコミットを強制)
git merge $FEATURE_BRANCH --no-ff -m "$(cat <<'EOF'
Merge branch 'FEATURE_BRANCH' into main

## マージ内容
- <変更の要約をここに記述>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

# main をプッシュ(フック回避が必要)
GIT_ACTIONS_ALLOW_PROTECTED_BRANCH=1 git push origin main

重要: 実際のコマンド実行時は $FEATURE_BRANCH を実際のブランチ名に置き換える。

4. コンフリクト発生時の対応

マージ中にコンフリクトが発生した場合:

  1. コンフリクトファイルをユーザーに報告
  2. 解決方法を提案:
    • git merge --abort でマージを中止
    • 手動でコンフリクトを解決後、git addgit commit
  3. ユーザーの指示を待つ

5. 後処理

マージ成功後、以下を提案:

  1. 元のブランチに戻る

    git checkout $FEATURE_BRANCH
    
  2. feature ブランチの削除(オプション)

    # ローカル削除
    git branch -d $FEATURE_BRANCH
    
    # リモート削除
    git push origin --delete $FEATURE_BRANCH
    

安全規則

絶対禁止

  • main ブランチ上からこのスキルを実行すること
  • git config の更新
  • --force オプション付きのマージ
  • --no-verify オプション

要確認

  • コンフリクトが予想される場合のマージ継続
  • feature ブランチの削除

フック回避について

このスキルは main ブランチへのマージ・プッシュが目的のため、 GIT_ACTIONS_ALLOW_PROTECTED_BRANCH=1 環境変数を設定して 保護ブランチフックをバイパスする。

これは意図された動作であり、ユーザーが明示的にマージコマンドを 実行した場合のみ適用される。

Examples

正常なマージフロー

# 1. 事前確認
$ git status
On branch feature/add-login
nothing to commit, working tree clean

$ git branch --show-current
feature/add-login

$ git fetch origin main
From github.com:user/repo
 * branch            main       -> FETCH_HEAD

$ git log main..HEAD --oneline
abc1234 feat: ログイン機能を追加
def5678 docs: READMEを更新

# 2. マージ実行
$ GIT_ACTIONS_ALLOW_PROTECTED_BRANCH=1 git checkout main
Switched to branch 'main'

$ git pull origin main
Already up to date.

$ git merge feature/add-login --no-ff -m "..."
Merge made by the 'ort' strategy.
 src/login.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md    |  5 +++++
 2 files changed, 55 insertions(+)
 create mode 100644 src/login.ts

$ GIT_ACTIONS_ALLOW_PROTECTED_BRANCH=1 git push origin main
To github.com:user/repo.git
   xyz9876..abc1234  main -> main

# 3. 後処理
$ git checkout feature/add-login
Switched to branch 'feature/add-login'

コンフリクト発生時

⚠️ マージ中にコンフリクトが発生しました。

コンフリクトファイル:
- src/config.ts
- src/utils.ts

解決方法:
1. マージを中止する場合: git merge --abort
2. 解決する場合:
   - 上記ファイルのコンフリクトを手動で解決
   - git add <解決したファイル>
   - git commit でマージを完了

どちらを選択しますか?

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

AI review pending.

Metadata

Licenseunknown
Version-
Updated2/16/2026
Publisherbiwakonbu

Tags

githubllm