search
LoginSignup
362
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
362
Help us understand the problem. What are the problem?