GitHub Flowとは?チーム開発の基本ワークフロー – 11/12

前回の記事では Gitコンフリクト(merge conflict) を解説しました。

Gitを使った開発では

  • ブランチ
  • merge
  • コンフリクト

などが日常的に発生します。

しかし実際のチーム開発では

どの順番で開発するのか

という開発ルールが必要になります。

その開発ルールの1つが GitHub Flow です。

GitHub Flowは現在、多くのWeb開発で使われている シンプルなGit運用モデルです。

この記事では次の内容を解説します。

  • GitHub Flowとは
  • GitHub Flowの流れ
  • Pull Request
  • コードレビュー
  • GitHub Flowのメリット

GitHub Flowとは

GitHub Flowとは

GitHubを使った開発の手順

です。

GitHub Flowには次の特徴があります。

  • シンプル
  • 小さな変更
  • 頻繁なデプロイ

特に

Webアプリ開発

でよく使われます。


GitHub Flowの基本構造

GitHub Flowでは

main

というブランチが 常に安定した状態であることが前提です。

つまり

main = 本番コード

です。

新しい機能を作る場合は

featureブランチ

を作ります。


GitHub Flowの開発手順

GitHub Flowの基本手順は次の通りです。

1 mainからブランチ作成
2 機能開発
3 commit
4 push
5 Pull Request
6 レビュー
7 merge

順番に説明します。


1 ブランチを作る

まず main から新しいブランチを作ります。

git switch -c feature-login

ブランチ名は

feature-login
feature-payment
fix-header

のように 機能名 を付けることが多いです。


2 機能を開発

新しい機能を実装します。

ログイン機能

3 commit

変更をコミットします。

git add .
git commit -m "add login feature"

4 push

GitHubへ送信します。

git push origin feature-login

するとGitHubに

feature-login

ブランチが作成されます。


5 Pull Request

GitHubでは次に

Pull Request

を作成します。

Pull Requestとは

変更をmainに取り込む提案

です。


Pull Requestの内容

Pull Requestには次の情報を記載します。

  • 変更内容
  • 理由
  • 影響範囲

ログイン機能を追加しました

6 コードレビュー

Pull Requestが作成されると

コードレビュー

が行われます。

レビューでは

  • バグ
  • 設計
  • 可読性

などを確認します。


7 merge

レビューが完了すると

merge

します。

つまり

featureブランチ
↓
main

に統合されます。


GitHub Flowのイメージ

開発の流れ

main
↓
feature branch
↓
commit
↓
push
↓
Pull Request
↓
review
↓
merge

これが GitHub Flow です。


GitHub Flowのメリット

GitHub Flowには次のメリットがあります。

シンプル

ルールが少ないため理解しやすいです。

安全

mainを直接変更しないため安全です。

レビュー文化

Pull Requestでコードレビューができます。

小さな変更

小さな変更を積み重ねる開発スタイルです。


GitHub Flowが向いているプロジェクト

GitHub Flowは次のプロジェクトに向いています。

  • Webアプリ
  • SaaS
  • スタートアップ

頻繁にデプロイするプロジェクトに適しています。


Git Flowとの違い

Gitにはもう1つ有名な運用モデルがあります。

Git Flow

Git Flowは

release
develop

など多くのブランチを使います。

一方GitHub Flowは

main + feature

だけなのでシンプルです。


まとめ

この記事では GitHub Flow を解説しました。

重要なポイント

main = 本番コード
featureブランチで開発
Pull Requestでレビュー
mergeで統合

GitHub Flowは現在最もよく使われるGit運用モデルです。


次の記事

次回は Gitシリーズ最終回

Gitベストプラクティス

を解説します。

コメント

タイトルとURLをコピーしました