Edited at

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

More than 3 years have passed since last update.


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/