Git Flow と GitHub Flow

Git Flow とは Git を使った開発を行う時の、有効なブランチの切り方です。

  • まず、中心となる master ブランチがあります。こちらがリリースされるものとなります。
  • 続いて、普段開発を行う際に中心となるのが develop ブランチです。
  • develop ブランチから複数の feature ブランチが切られ、それぞれの機能が実装されます。実行が完了すると develop ブランチにマージされます。
  • リリースを行う際にはまず develop ブランチから release ブランチが切られます。ここではリリースのためのバグの修正のみ行われます。バグの修正が完了すると、 master ブランチと develop ブランチにマージされます。
  • リリースから次のリリースまでの期間に緊急を要するバグ対応がある場合には、 master ブランチから直接 hotfix ブランチを切って対応します。バグ対応が完了すると、 master ブランチと develop ブランチにマージされます。

git_flow

GitHub Flow

GitHub flow とは GitHub のプルリクエスト機能を使うことを前提とした Git flow を簡略化したものです。

  • master ブランチから作業内容を表す名前のブランチ(トピックブランチ)を切って開発(機能追加・バグフィックス)
  • 開発が完了したらトピックブランチに push し、 master ブランチに対してプルリクエストを出す
  • コードレビューの内容に応じて、問題がなければ master ブランチにマージする。(問題があれば修正して再度pull request )

GitHubflow

GitHub flowのメリット

  • プルリクエストを利用することによって、 Git flow よりもシンプルで覚えやすくなっています。
  • ブランチの派生が起こらないため、複数のブランチにマージすることがなくなり、マージし忘れることなども減ります。
  • プルリクエストの過程の中にコードレビューが組み込まれています。
  • master ブランチの内容は常にリリース可能なものとなります。

GitHub Flowのデメリット

  • トピックブランチへの適切な命名が必要です。
  • 即リリースのための簡略化なので、アプリ開発などの、即リリースすることが不可能なケースには不適切です。

results matching ""

    No results matching ""