##git flowとgithub flowとは?その違いは?
ふたつとも、Gitにおけるリポジトリのモデルのこと。
こんなふうにブランチを切って運用していくと便利だよというワークフローのこと。
github flowはgit flowを簡略化したもの。
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ブランチにマージする