mcpField
G
gitflow

gitflow

github.com/mindrally開発30080 回インストール4 週間前に更新
リポジトリ

gitflow について

開発チーム向けに Gitflow のブランチモデルを説明するスキルです。ブランチの役割と命名、Conventional Commits、プルリクエストのルール、セマンティックバージョニング、リリースとホットフィックスの手順を扱います。

主な機能

  1. 01長期・補助ブランチの役割
  2. 02ブランチ命名規則
  3. 03Conventional Commits 形式
  4. 04プルリクエストとブランチ保護のルール
  5. 05リリースとホットフィックスの手順

活用シーン

  1. 01develop を起点にした機能開発
  2. 02main 向けリリースブランチの準備
  3. 03hotfix ブランチによる緊急修正の公開
  4. 04コミットメッセージとバージョン更新の標準化

インストール

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

$npx skills add https://github.com/mindrally/skills --skill gitflow

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

詳細

Gitflow

このスキルでは、Gitflow のブランチモデルについて説明します。長期間維持する 2 つのブランチ、3 種類のサポートブランチ、コミットメッセージの規約、セマンティックバージョニング、リリースとホットフィックスの手順を取り上げます。

機能変更のワークフロー

  1. develop を同期する — git checkout develop && git pull origin develop を実行して、最新の開発状態から機能ブランチを作成できるようにします。
  2. 機能ブランチを作成する — git checkout -b feature/123-user-authentication を実行し、命名規則 feature/[issue-id]-descriptive-name に従います。
  3. 規約に沿ったメッセージでコミットする — すべてのコミットに type(scope): description を使用します(下記の「コミットメッセージ」を参照)。
  4. develop をリベースまたはマージする — PR を作成する前に、ブランチを最新の状態にします。git fetch origin && git rebase origin/develop を実行します(またはチームの規約に従ってマージします)。
  5. develop 宛てにプルリクエストを作成する — 少なくとも 1 件の承認と CI チェックの合格を必須にします。develop に直接コミットしてはいけません。
  6. マージして後片付けする — マージ後、ローカルとリモートの両方で機能ブランチを削除します。git branch -d feature/123-user-authentication && git push origin --delete feature/123-user-authentication。

メインブランチ

main(または master)
  • 本番環境に対応できるコードのみを含みます。
  • main に直接コミットしてはいけません。
  • hotfix/* ブランチまたは release/* ブランチからのマージのみを受け入れます。
  • マージのたびに、バージョン番号でタグ付けする必要があります(例:git tag -a v1.2.0 -m "Release 1.2.0")。
develop
  • メインの統合ブランチです。最新の開発成果を含みます。
  • すべての feature/* ブランチの作成元です。
  • develop に直接コミットしてはいけません。すべての変更はプルリクエストを通じて取り込みます。

サポートブランチ

feature/*
  • 作成元:develop。
  • マージ先:develop。
  • 命名規則:feature/[issue-id]-descriptive-name(例:feature/123-user-authentication)。
  • PR を作成する前に、develop の最新状態に更新する必要があります。
  • マージ後に削除します。
release/*
  • 作成元:develop。
  • マージ先:main および develop。
  • 命名規則:release/vX.Y.Z(例:release/v1.2.0)。
  • 対象はバグ修正、ドキュメント、リリース関連の作業に限ります。新機能は含めません。
  • マージ後に削除します。
hotfix/*
  • 作成元:main。
  • マージ先:main および develop。
  • 命名規則:hotfix/vX.Y.Z(例:hotfix/v1.2.1)。
  • 本番環境の緊急修正専用です。
  • マージ後に削除します。

コミットメッセージ

Conventional Commits 形式 type(scope): description を使用します。

Type意味
feat新機能
fixバグ修正
docsドキュメントの変更
style書式の変更、セミコロンの不足など。ロジックの変更はありません
refactor動作を変えずにコードを再構成
testテストの追加または修正
choreメンテナンス作業(ビルドスクリプト、依存関係の更新など)

例:

feat(auth): add refresh-token rotation

fix(orders): prevent duplicate charge on retry

chore(deps): bump lodash to 4.17.21

セマンティックバージョニング

バージョン MAJOR.MINOR.PATCH の場合:

  • MAJOR — 互換性のない変更や破壊的変更を API に加えた場合に増加します。
  • MINOR — 後方互換性のある新機能を追加した場合に増加します。
  • PATCH — 後方互換性のあるバグ修正を行った場合に増加します。

プルリクエストのルール

  1. すべての変更はプルリクエストを通じて行う必要があります。main や develop への例外はありません。
  2. マージ前に、少なくとも 1 件の承認が必要です。
  3. すべての CI チェックに合格する必要があります。
  4. 保護されたブランチ(main、develop)への直接コミットは禁止です。
  5. マージ前に、ブランチをマージ先の最新状態に更新する必要があります。
  6. マージ後にブランチを削除します(ローカルとリモートの両方のコピー)。

ブランチ保護ルール

main と develop の両方に適用します。

  • マージ前にプルリクエストのレビューを必須にします。
  • マージ前にステータスチェックの合格を必須にします。
  • マージ前にブランチを最新の状態に更新することを必須にします。
  • 管理者も制限の対象に含めます(昇格された権限によるルールの回避を禁止)。
  • 強制プッシュを禁止します。
  • ブランチの削除を禁止します。

リリースプロセス

  1. develop からリリースブランチを作成します:git checkout -b release/v1.2.0 develop。
  2. パッケージマニフェスト/変更履歴のバージョン番号を更新します。
  3. リリース固有の問題(ドキュメント、直前のバグなど)を修正します。新機能は追加しないでください。
  4. リリースブランチから main への PR を作成します。
  5. main へのマージ後:
    • リリースにタグを付けます:git tag -a v1.2.0 -m "Release 1.2.0" を実行し、タグをプッシュします。
    • main を develop にマージし、リリースコミットとタグが develop に含まれるようにします。
    • リリースブランチを削除します。

ホットフィックスプロセス

  1. main からホットフィックスブランチを作成します:git checkout -b hotfix/v1.2.1 main。
  2. 本番環境の問題を、可能な限り小さな変更で修正します。
  3. パッチバージョンを更新します。
  4. ホットフィックスブランチから main への PR を作成します。
  5. main へのマージ後:
    • リリースにタグを付けます:git tag -a v1.2.1 -m "Hotfix 1.2.1" を実行し、タグをプッシュします。
    • 修正が次のリリースで失われないよう、main を develop にマージします。
    • ホットフィックスブランチを削除します。

コメント