Github flowについて調べたので自分なりにまとめてみました。
#Github flowとは?
Githubで開発をするときに主に使用されるワークフローであり、以下の6つのルールのもとに使用される。
1 masterブランチは常にデプロイ可能にしておくこと
2 作業用ブランチをmasterから作成すること
3 作業用ブランチを定期的にプッシュする
4 プルリクエストを活用する
5 プルリクエストが承認されたらmasterへマージする
6 masterにマージが完了したら直ちにデプロイを行う
##詳細
1 masterブランチは常にデプロイ可能にしておくこと
- masterブランチにあるソースコードを常にデプロイできる状態にしておくこと
※デプロイ・・・アプリケーションを本番環境にアップロードすること。
2 作業用ブランチをmasterから作成すること
- masterブランチから新しいブランチを作成する。その際は作業している内容がわかるような名前をつけることが大切!
3 作業用ブランチを定期的にプッシュする
- 2で作ったブランチはローカルリポジトリ内に存在するためチームで開発しているとき、他の開発者は誰がどのようなブランチを作って何を変更したのかがわかりません。なのでブランチを作成したときや、コミットした際はリモートリポジトリにプッシュすることが必要。
4 プルリクエストを活用する
- フィードバックをもらうことによりミスなどを防具ことができ、質の高いコードをmasterにマージすることができます。また困ったときに助けてもらうことができるため効率が良いです。
5 プルリクエストが承認されたらmasterへマージする
これはそのまんま....
6 masterにマージが完了したら直ちにデプロイを行う
プルリクエストをしてもらってもミスがmasterブランチに混ざることがあるため、master
ブランチにマージされた後はすぐに正常にデプロイできるかどうかチェックする必要があります。
#実際の流れ
developブランチをmasterブランチから作成
↓
機能実装を開始
- developブランチからフィーチャーブランチを作成し、機能実装作業を開始
↓
機能実装を完了する
-フィーチャーブランチでの作業が完了したら、フィーチャーブランチをdevelopブランチにマージ
↓
リリース準備を開始する
-機能実装が終わりリリースできる状態になったら、developブランチからリリースブランチを作成
↓
リリース準備を完了する
-リリースブランチでの作業が完了したら、リリースブランチをmasterとdevelopブランチにマージ
#感想
まだ実際に開発をしたことがあるわけではないですがGithub flowというのがなんとなくわかった気がします。調べているときにやはり用語がわからないために理解するのにかなり苦労しました。自分が調べた用語を載せときたいと思います。(自分のためにも!!)
ーメインブランチ〜[master][develop]の2種類がある
ーサポートブランチ[フィーチャー][リリース][ホットフィックス]の3種類がある。
・フィーチャー〜機能実装やバグ修正などの開発作業を行う
・リリース〜リリース準備作業を行う
・ホットフィックス〜緊急の修正作業を行う
参考サイト
https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html
https://nvie.com/posts/a-successful-git-branching-model/