前回まででGitがどういうものかなんとなくわかったかと思います。
今回はシステム開発におけるGitの運用方法(ワークフロー)についてお話ししたいと思います。
Gitのワークフローは、簡単なものから複雑なものまでたくさんあります。
一般的によく使われるフローは下記の2つです。
- Git Flow
- Github Flow
このフローを順番に説明します。
Git Flow
masterブランチとは別に開発(develop)ブランチを作成して、そこから他のブランチを派生させるフローです。リリース間隔がある程度あいている開発に向いています。
図にするとこんな感じです。
- maserブランチからdevelopブランチを作成
- developブランチからbranch Aを作成
- branch Aでファイル編集してコミット
- branch Aをプッシュしてプルリクエスト後、developにマージ
- developブランチからbranch Bを作成
- branch Bでファイル編集してコミット
- branch Bをプッシュしてプルリクエスト後、developにマージ
リリースする際、下記手順になります
- developブランチからrelease Aブランチを作成
- 不具合修正などがある場合、release Aブランチで修正を行う
- release Aブランチをmasterブランチにマージ
- 2の修正がある場合、developブランチにもマージ
手順完了後、masterブランチをサーバーに反映するとリリース完了となります。
以降、開発するたびに上記手順を繰り返します。
Github Flow
masterブランチからそのまま他ブランチを作成するフローです。masterブランチにマージした修正はすぐにリリースされることを推奨しています。リリースの頻度が高い開発でよく使われます。
図にするとこんな感じです。
- maserブランチからbranch Aを作成
- branch A でファイル編集してコミット
- branch Aをプッシュしてプルリクエスト後、masterブランチにマージ
手順完了後、masterブランチをサーバーに反映するとリリース完了。
オススメ
Gitフローは手順が複雑でブランチの管理が大変です。その点、Githubフローはブランチをたくさん作る必要がないのでフローが非常にわかりやすいです。もし自分のサービスでGitを使うのであればブランチ管理が単純なGithubフローをオススメします。
ただ、弊社では上記の2つをカスタムしたようなフローを使用しています。
次回は、何故そのようなフローにしたのかについてお話ししたいと思います。