git-workflow について
git-workflow は、一般的な Git 操作を段階的に案内するスキルです。コードレビューやリポジトリ保守を行う開発者向けに、PR 準備、ブランチ整理、競合解決、公開前の確認を扱います。
主な機能
- 01PR 準備時のコミットと差分の確認
- 02マージ済みブランチの安全な整理
- 03マージまたはリベースによる競合解決
- 04モノレポでのリリースタグのスコープ指定
- 05リポジトリ登録前の .gitignore 作成
- 06プライベートリポジトリのライセンス確認
活用シーン
- 01ブランチのコミットと変更から PR を作成
- 02マージ済みのローカルブランチを削除
- 03PR と main ブランチ間の競合を解決
- 04モノレポ内のパッケージをリリースタグ付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jezweb/ claude-skills --skill git-workflowインストール後、Claude Code で/git-workflowを入力して読み込まれたか確認します。
詳細
Git ワークフロー
手順を整理することで役立つ、一般的な git 操作のガイド付きワークフローです。
PR の準備
プルリクエストを準備する際は、次の手順に従います。
-
コンテキストを確認する
git log main..HEAD --oneline— ブランチ上のすべてのコミットを一覧表示しますgit diff main...HEAD --stat— 変更されたファイルをすべて確認しますgit status— コミットされていない作業がないか確認します
-
PR の内容を下書きする
- タイトル:70 文字以内で、ブランチ名ではなく変更内容を説明します
- 本文:「なぜ」変更するのかを要約し、主な変更点を列挙して、テスト計画を追加します
- 概要を書く際はコミット履歴を使い、記憶に頼らないようにします
-
プッシュして作成する
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 )" -
確認する —
gh pr view --webでブラウザーに開きます
ブランチの整理
マージ済みブランチを安全に整理します。
-
main に切り替えて最新の状態を取得する
git checkout main && git pull -
マージ済みブランチを一覧表示する(main/master/develop を除く)
git branch --merged main | grep -vE '^\*|main|master|develop' -
ローカルのマージ済みブランチを削除する
git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d -
リモート追跡参照を整理する
git fetch --prune -
ローカルで追跡されていないリモートブランチを一覧表示する(任意)
git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD'
マージコンフリクトの解決
PR にコンフリクトがある場合は、次の手順に従います。
-
コンフリクトの範囲を確認する
git fetch origin git merge origin/main --no-commit --no-ff git diff --name-only --diff-filter=U # List conflicted files -
コンフリクトがある各ファイルについて、ファイルを読み込んで解決します。
- 変更箇所が異なる場合は、両方の変更を残します
- アーキテクチャ上、互換性がない場合は、main ブランチの方針を優先し、その上に PR の意図を再適用します
-
リベースのほうがすっきりする場合(コミット数が少なく、共有履歴がない場合):
git rebase origin/main # Resolve conflicts per commit, then: git rebase --continue -
リベースが複雑な場合(コンフリクトが多い、アーキテクチャが大きく異なる場合):
- 中止します:
git rebase --abortまたはgit merge --abort - 使えるコードを取り出します:
git show origin/branch:path/to/file > /tmp/extracted.txt - 変更を手動で main に適用します
- 説明を添えて元の PR をクローズします
- 中止します:
-
確認する — テストを実行し、差分に問題がないことを確認します
モノレポのリリースタグ
モノレポでは、タグの対象をパッケージに絞ります。
# ❌ 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 内の「コントリビューション歓迎」の記載がない