こんにちは、エンジニアの神山です。
今回はクライマーで導入しているGitの運用について紹介したいと思います。
ブランチの種類について
ブランチ名は以下を基本としています。
- main
- release
- develop
- feature/xxx
- fix/xxx
- hotfix/xxx
Gitflowなどでよく見るブランチの命名規則を利用しています。
- mainブランチ
- 本番環境と同等の状態
- releaseブランチ
- 本番環境リリース前の状態
- develop
- 開発環境と同等
マージについて
一般的になGitflowなどではfeatureブランチ → developブランチ → mainブランチなどのパターンが多いかと思います。
gitGraph: options { “nodeSpacing”: 150, “nodeRadius”: 10 } end commit checkout main branch develop branch feature commit merge develop checkout develop merge feature checkout main merge develop checkout feature commit commit checkout develop merge feature checkout main merge develop
クライマーの場合は以下のマージフローになります。
gitGraph: options { “nodeSpacing”: 150, “nodeRadius”: 10 } end commit branch release branch develop branch feature commit commit commit checkout develop commit merge feature checkout release commit merge feature checkout main commit merge release checkout feature commit checkout develop merge feature checkout release commit merge feature checkout main commit merge release
main(master)ブランチからfeatureブランチを作成して開発、
その後featureブランチをdevelopブランチにマージして、テスト環境で確認。
テスト環境にて確認がとれ、問題なければfeatureブランチをreleaseブランチにマージ、
releaseブランチをmainブランチにマージしてリリースとなります。
クライマーのGitブランチ運用のポイントとしては、featureブランチをreleaseブランチに入れるところです。
理由はdevelopブランチをreleaseブランチにマージとなると、
developブランチで確認中の機能A,Bがあって、先に機能Bをリリースする場合に機能Bだけを取り出してマージする必要があります。
だいたい、このやり方をすると予期せぬものがリリースされたり、ファイルが足りずにリリースして、本番環境のみ障害が発生することがあります。
これらを回避するために、必要な機能のみをreleaseブランチに入れてリリース作業を行うようにしております。
クライマーでは通常の「Git-flow」と「Github Flow」の運用に沿わずにちょっと独自の運用スタイルを採用しています。