git flowとgithub flowとは?その違いは?

  • 59
    いいね
  • 0
    コメント

git flowとgithub flowとは?その違いは?

ふたつとも、Gitにおけるリポジトリのモデルのこと。
こんなふうにブランチを切って運用していくと便利だよというワークフローのこと。

github flowはgit flowを簡略化したもの。

git flowとは?

git-model@2x.png

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

  • masterブランチ、developブランチがメイン
  • featureブランチ、releaseブランチ、hotfixブランチが補助
  • masterブランチは常にリリースできる状態
  • developブランチから、featureブランチ/releaseブランチ/hotfixブランチを切って開発を進める

  • featureブランチは機能追加用(通常の開発用)

  • releaseブランチはリリース直前用

  • hotfixブランチはリリース後の緊急対応用

git flowでの開発の流れ

①developブランチからfeatureブランチを切って、開発
(②他の人が開発したら自分のfeatureブランチにマージ)
③開発が終わったらfeatureブランチをdevelopにマージして、featureブランチを削除
④developブランチをremoteにpush

①~④を繰り返して開発を進める

⑤開発が終了したらdevelopブランチからreleaseブランチを切ってリリース準備
⑥releaseブランチの編集完了後、developブランチとmasterブランチにマージして、releaseブランチを削除
⑦リリース(masterブランチのデプロイ)
⑧リリース後、バグが発生した場合にはmasterブランチからhotfixブランチを切って対応
⑨バグ対応が完了したらmasterブランチにマージして、hotfixブランチを削除

⑤~⑨を繰り返してバージョン管理を運用する

作業を行うのはfeatureブランチ/releaseブランチ/hotfixブランチ上で
developブランチ/masterブランチでは作業は行わない。

github flowとは?

git flowを簡略化したもの。
具体的には、developブランチが省略されて、pull request機能が使われていることが、大きな違い。

github flowでの開発の流れ

①masterブランチから説明的な名前を付けたブランチを切って、開発
②開発が終わったら、作成したブランチにローカルでcommitし、サーバー上の同名ブランチにpushする
③アドバイスやFB、コードレビューをしてもらいたい時、もしくはブランチをマージする時にpull requestを出す
④必要があればコードを修正して再度commitとpush
⑤その場のルールによるが、再度コードレビューをしてもらってOKが出たら、masterブランチにマージする

参考 https://codeiq.jp/magazine/2014/11/18748/