mcpField
G
git-workflow

git-workflow

github.com/jezweb開発1.1k1.2k 回インストール3 週間前に更新
リポジトリ

git-workflow について

git-workflow は、一般的な Git 操作を段階的に案内するスキルです。コードレビューやリポジトリ保守を行う開発者向けに、PR 準備、ブランチ整理、競合解決、公開前の確認を扱います。

主な機能

  1. 01PR 準備時のコミットと差分の確認
  2. 02マージ済みブランチの安全な整理
  3. 03マージまたはリベースによる競合解決
  4. 04モノレポでのリリースタグのスコープ指定
  5. 05リポジトリ登録前の .gitignore 作成
  6. 06プライベートリポジトリのライセンス確認

活用シーン

  1. 01ブランチのコミットと変更から PR を作成
  2. 02マージ済みのローカルブランチを削除
  3. 03PR と main ブランチ間の競合を解決
  4. 04モノレポ内のパッケージをリリースタグ付け

インストール

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

$npx skills add https://github.com/jezweb/claude-skills --skill git-workflow

インストール後、Claude Code で/git-workflowを入力して読み込まれたか確認します。

詳細

Git ワークフロー

手順を整理することで役立つ、一般的な git 操作のガイド付きワークフローです。

PR の準備

プルリクエストを準備する際は、次の手順に従います。

  1. コンテキストを確認する

    • git log main..HEAD --oneline — ブランチ上のすべてのコミットを一覧表示します
    • git diff main...HEAD --stat — 変更されたファイルをすべて確認します
    • git status — コミットされていない作業がないか確認します
  2. PR の内容を下書きする

    • タイトル:70 文字以内で、ブランチ名ではなく変更内容を説明します
    • 本文:「なぜ」変更するのかを要約し、主な変更点を列挙して、テスト計画を追加します
    • 概要を書く際はコミット履歴を使い、記憶に頼らないようにします
  3. プッシュして作成する

    git push -u origin HEAD
    gh pr create --title "..." --body "$(cat <<'EOF'
    ## Summary
    - ...
    
    ## Test plan
    - [ ] ...
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    EOF
    )"
    
  4. 確認する — gh pr view --web でブラウザーに開きます

ブランチの整理

マージ済みブランチを安全に整理します。

  1. main に切り替えて最新の状態を取得する

    git checkout main && git pull
    
  2. マージ済みブランチを一覧表示する(main/master/develop を除く)

    git branch --merged main | grep -vE '^\*|main|master|develop'
    
  3. ローカルのマージ済みブランチを削除する

    git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d
    
  4. リモート追跡参照を整理する

    git fetch --prune
    
  5. ローカルで追跡されていないリモートブランチを一覧表示する(任意)

    git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD'
    

マージコンフリクトの解決

PR にコンフリクトがある場合は、次の手順に従います。

  1. コンフリクトの範囲を確認する

    git fetch origin
    git merge origin/main --no-commit --no-ff
    git diff --name-only --diff-filter=U  # List conflicted files
    
  2. コンフリクトがある各ファイルについて、ファイルを読み込んで解決します。

    • 変更箇所が異なる場合は、両方の変更を残します
    • アーキテクチャ上、互換性がない場合は、main ブランチの方針を優先し、その上に PR の意図を再適用します
  3. リベースのほうがすっきりする場合(コミット数が少なく、共有履歴がない場合):

    git rebase origin/main
    # Resolve conflicts per commit, then:
    git rebase --continue
    
  4. リベースが複雑な場合(コンフリクトが多い、アーキテクチャが大きく異なる場合):

    • 中止します:git rebase --abort または git merge --abort
    • 使えるコードを取り出します:git show origin/branch:path/to/file > /tmp/extracted.txt
    • 変更を手動で main に適用します
    • 説明を添えて元の PR をクローズします
  5. 確認する — テストを実行し、差分に問題がないことを確認します

モノレポのリリースタグ

モノレポでは、タグの対象をパッケージに絞ります。

# ❌ Ambiguous in monorepos
git tag v2.1.0

# ✅ Scoped to package
git tag contextbricks-v2.1.0
git push origin contextbricks-v2.1.0

パターン:{package-name}-v{semver}

.gitignore を先に作成する初期化

新しいリポジトリを作成するときは、最初の git add の前に必ず .gitignore を作成します。

cat > .gitignore << 'EOF'
node_modules/
.wrangler/
dist/
.dev.vars
*.log
.DS_Store
.env
.env.local
EOF

git init && git add . && git commit -m "Initial commit"

node_modules がすでに追跡されている場合:

git rm -r --cached node_modules/
git commit -m "Remove node_modules from tracking"

プライベートリポジトリのライセンス監査

プライベートリポジトリを公開または共有する前に、次のことを確認します。

gh repo view --json visibility -q '.visibility'

PRIVATE の場合は、次を確認してください。

  • LICENSE に独自ライセンスの通知が記載されている(MIT/Apache ではない)
  • package.json に "license": "UNLICENSED" と "private": true が設定されている
  • CONTRIBUTING.md や、README 内の「コントリビューション歓迎」の記載がない

コメント