*

Gitを使った有名な開発フロー、GitFlowとGitHub Flowについて

公開日: : ブログ, 技術系 , ,

はじめに

Gitを使った有名な開発フローに、GitFlowとGitHub Flowがあります。

  1. GitFlow
  2. GitHub Flow

この2つの開発フローについて主観的にまとめてみました。

GitFlow

http://nvie.com/posts/a-successful-git-branching-model/


http://keijinsonyaban.blogspot.jp/2010/10/a-successful-git-branching-model.html

GitHub Flow
https://gist.github.com/Gab-km/3705015

それぞれの特徴

まずはそれぞれの主観的な特徴です。

特徴 GitFlow GitHub Flow
ブランチ 定型 自由
難しさ ちょっと難しい 難しい
マージ Gitのマージ機能 プルリクエスト
コードレビュー 取り決めなし PR時にレビュー
CUIヘルパ git-flow hub
リリース 堅い ガンガン

ブランチの切り方について、GitFlowは(ほぼ)決められています。

ブランチの運用について

GitFlowではブランチの運用方針について取り決めがあります。

ブランチ デフォルト値
マスターブランチ master
開発ブランチ develop
機能追加用ブランチ future/
リリース用ブランチ release/
ホットフィックス用ブランチ hotfix/

それぞれのブランチ名は、基本的にデフォルトの名前を付けます。

このブランチ運用こそがGitFlowの本質とも言えて、ブランチ間の移動に取り決めがあります。

  1. スタート
  2. 開発ブランチ作成
  3. 開発
  4. 開発ブランチマージ
  5. リリースブランチ
  6. ホットフィックス
  7. リリースブランチマージ
  8. リリース

ざっくり上記の流れになります。

それに対してGitHub Flowでは、masterブランチのみ決められています。
ただしmasterブランチは「常にデプロイ可能」という強い制約があります。
GitHub Flowのブランチ運用で最も重要な箇所ですね。

難しさ

特徴 GitFlow GitHub Flow
難しさ ちょっと難しい 難しい

そもそも「難しさ」の定義について色々あると思いますが、実際に運用してみた感想です。
開発フローとしてGitFlowを採用した場合、GitHub Flowを採用した場合にチームメンバーから不明な点などの問い合わせが相次ぎました。

「Gitを使いましょう!」と始めて、プル、コミット、プッシュができるようになって、その次のフェーズに進みました。

Gitレベル できること
レベル1 pull(fetch), commit, push
レベル2 branch, stash, merge, resolve
レベル3 プルリクエスト, レビュー、採用

GitFlowの名称について

GitFlowは同名のgitflowという名前のツールがあります。
作者は

https://github.com/petervanderdoes/gitflow-avh/

このリポジトリのfirst commitは2010年1月となっていました。

https://github.com/petervanderdoes/gitflow-avh/commit/a9575ca331c6f1855dcd78ff5c8838b92d9bea67
この最初のコミットを行っているのが nvie(Vincent Driessen)という方です。

またGitFlowの開設について、原典は下記の記事のようです。
http://nvie.com/posts/a-successful-git-branching-model/
この記事を書いたのも nvie です。
ちなみにこの記事では「GitFlow」という名称は出てきておらず、
「A Successful Git Branching Model」(素晴らしいGitのブランチ運用について)
というタイトルが付いています。
この記事では「GitFlow」という名称は登場していません。

恐らく先ほどのgitflowというツール名から、
nvieの提唱する「A Successful Git Branching Model」の方法論のことを「GitFlow」と呼ぶようになったのではないか、と思われます。
ちなみにGitのリポジトリ名は全て小文字で表記しますので、gitflowのツール名は小文字です。
ですが開発フローとしての表記はGitFlowが自然に見えます。そのあたりもあり、表記については揺れがあるようです。
1. GitFlow
1. gitflow
1. git-flow

GitFlow

運用して発生した問題点

ブランチ操作

プルリクエスト

コードレビュー

Git Flow vs Github Flow

http://qiita.com/mint__/items/bfc58589b5b1e0a1856a
https://b.pyar.bz/20140122/github-flow

GitHub Flow

それぞれの特徴

まずはそれぞれの主観的な特徴です。

特徴 GitFlow GitHub Flow
ブランチ 定型 自由
難しさ ちょっと難しい 難しい
マージ Gitのマージ機能 プルリクエスト
コードレビュー 取り決めなし PR時にレビュー
CUIヘルパ git-flow hub
リリース 堅い ガンガン

ブランチの切り方について、GitFlowは(ほぼ)決められています。

ブランチの運用について

GitFlowではブランチの運用方針について取り決めがあります。

ブランチ デフォルト値
マスターブランチ master
開発ブランチ develop
機能追加用ブランチ future/
リリース用ブランチ release/
ホットフィックス用ブランチ hotfix/

それぞれのブランチ名は、基本的にデフォルトの名前を付けます。

このブランチ運用こそがGitFlowの本質とも言えて、ブランチ間の移動に取り決めがあります。

  1. スタート
  2. 開発ブランチ作成
  3. 開発
  4. 開発ブランチマージ
  5. リリースブランチ
  6. ホットフィックス
  7. リリースブランチマージ
  8. リリース

ざっくり上記の流れになります。

それに対してGitHub Flowでは、masterブランチのみ決められています。
ただしmasterブランチは「常にデプロイ可能」という強い制約があります。
GitHub Flowのブランチ運用で最も重要な箇所ですね。

難しさ

特徴 GitFlow GitHub Flow
難しさ ちょっと難しい 難しい

そもそも「難しさ」の定義について色々あると思いますが、実際に運用してみた感想です。
開発フローとしてGitFlowを採用した場合、GitHub Flowを採用した場合にチームメンバーから不明な点などの問い合わせが相次ぎました。

「Gitを使いましょう!」と始めて、プル、コミット、プッシュができるようになって、その次のフェーズに進みました。

Gitレベル できること
レベル1 pull(fetch), commit, push
レベル2 branch, stash, merge, resolve
レベル3 プルリクエスト, レビュー、採用

GitFlowの名称について

GitFlowは同名のgitflowという名前のツールがあります。
作者は

https://github.com/petervanderdoes/gitflow-avh/

このリポジトリのfirst commitは2010年1月となっていました。

https://github.com/petervanderdoes/gitflow-avh/commit/a9575ca331c6f1855dcd78ff5c8838b92d9bea67
この最初のコミットを行っているのが nvie(Vincent Driessen)という方です。

またGitFlowの開設について、原典は下記の記事のようです。
http://nvie.com/posts/a-successful-git-branching-model/
この記事を書いたのも nvie です。
ちなみにこの記事では「GitFlow」という名称は出てきておらず、
「A Successful Git Branching Model」(素晴らしいGitのブランチ運用について)
というタイトルが付いています。
この記事では「GitFlow」という名称は登場していません。

恐らく先ほどのgitflowというツール名から、
nvieの提唱する「A Successful Git Branching Model」の方法論のことを「GitFlow」と呼ぶようになったのではないか、と思われます。
ちなみにGitのリポジトリ名は全て小文字で表記しますので、gitflowのツール名は小文字です。
ですが開発フローとしての表記はGitFlowが自然に見えます。そのあたりもあり、表記については揺れがあるようです。
1. GitFlow
1. gitflow
1. git-flow

GitFlow

運用して発生した問題点

ブランチ操作

プルリクエスト

コードレビュー

Git Flow vs Github Flow

http://qiita.com/mint__/items/bfc58589b5b1e0a1856a
https://b.pyar.bz/20140122/github-flow

関連記事

Dockerで作成した名前の無いイメージを削除するワンライナー

Docker楽しいですね。 Dockerでイメージをビルドしていると、名前の無いイメージがたくさん

記事を読む

Laravel + Vue.js勉強会に参加してきました

はじめに こんにちは! イベントURL https://connpass.com/event/7

記事を読む

WordPressのトップページ(フロントページ)のループで、投稿だけじゃなくて固定ページとかも表示させる

WordPressのトップページ(フロントページ)のループで、投稿だけじゃなくて固定ページとかも表示

記事を読む

Dockerで一般ユーザにsudoをさせようと思ったらパスワードが必要だったので、パスワードなしsudoを許可させる方法

はじめに DockerとDockerfileを編集していて、一般ユーザにsudoを与える必要があり

記事を読む

小規模チームでのWordPress案件開発でComposerにまかせてみる

5人以下のチームでWordPress案件を開発するときのメモです。 小規模なのでファイル同期にあまり

記事を読む

WordFes Nagoya 2017に参加してきました

はじめに こんにちは。 名古屋で開催されたWordFes Nagoya 2017に参加 &

記事を読む

MacOSでMySQL(MariaDB)を使った開発をしていたら大文字小文字のレターケースでドハマリしてしまったお話

はじめに 表題の件です。 MySQL(MariaDB)を使った開発を行っていましたが、そこで原因不

記事を読む

エバラ食品工業の優待が届きました

エバラ食品工業の優待が届きました。 思った以上に色々なタレが入っていて満足です。 ただあまり焼き肉

記事を読む

WordPressのRSSフィードでpubDateがGMT(9時間遅く)になっているのを変更する

はじめに WordPressでは標準でRSSフィードが提供されています。 例えばこのサイトであれば

記事を読む

WP_Queryで投稿日を日付の期間指定して取り出す

WP_Queryで投稿日を日付の期間指定して取り出したかったです。 どういうことかというと「201

記事を読む

コメントを残す

ホクトの優待申し込みが届きました

「中規模案件のこなしかた」をWordCamp Osaka 2018で登壇して伝えたかったこと

こんにちは! 先日行われたWordCamp Osaka 2018に参加

イオンモールの優待申し込みが届きました

イオンモールの優待申込みが届きました。 ギフトカードにしました。 他の

ハピネット優待申し込みが届きました

ハピネットの優待申し込みが届きました。 おもちゃ系のカタログで、当初

エバラ食品工業の優待が届きました

エバラ食品工業の優待が届きました。 思った以上に色々なタレが入ってい

→もっと見る

%d人のブロガーが「いいね」をつけました。
PAGE TOP ↑