Gitでのブランチ管理はどうすればいいのか?

エクストでは、システム案件の管理をGitというバージョン管理システムで管理しています。

昔から様々なバージョン管理システムがあり、エクストもCVS → SubVersion → Gitと渡り歩いてきました。

今までは一人で開発しておりブランチを切るほど複雑な開発をしてこなかったのですが、SONR.の開発では様々な機能追加やテスト実装などが頻繁に行われてきており、masterだけでは管理できなくなったのでしっかりした運用を行うようになりました。

ですが、今までブランチを切って管理する事がなかったため命名規則やどのタイミングでブランチを切ったりすれば良いのかがわからなかったため、自分が勉強した内容をまとめる意味も含め書きたいと思います。

ブランチは目的別に用意する

各自が好き勝手にブランチ名をつけたら何がどうなっているのかわからなくなります。

これは、新機能なの?それともバグ修正なの?どれを使えばいいの?とならない為に標準的な命名規則がありますのでそちらを紹介します。

master(マスター)ブランチ

基本となるブランチで、完成品を置いておくブランチです。

masterブランチには「releaseブランチ」と不具合対応した「hotfixブランチ」からマージして更新していきます。

更新したらバージョン情報などわかるようにタグ名を設定しておくようにしましょう。

develop(デベロップ)ブランチ

次期リリースに向けての開発を行う為の、メインブランチとなります。

ここの役割は「master」と同じ役割になります。

developブランチは初回のみmasterブランチから派生して作成し、以降は「feature」ブランチからマージして更新していきます。
releaseブランチやhotfixブランチで更新された場合も同様にマージして更新していきます。

feature(フィーチャー)ブランチ

新機能開発を行うブランチになります。

developブランチから派生させていきます。

featureブランチを作成する場合は「feature-機能名」とするように命名していきます。

ただこの命名規則だと、そのうち被ってしまう可能性があるためエクストでは「feature-日付-機能名」とするようにしています。
日付はブランチを作成した日にして、いつから作成しているのか?をわかるようにしています。

release(リリース)ブランチ

開発が完了し、完成品として問題ないかをチェックするためのブランチです。

developブランチから派生させて作成します。

releaseブランチでは最終チェックとバグがあればこのブランチ内で更新をしていきます。
更新を行ったら、developブランチに変更内容をマージするようにします。

最終的に問題がなければ、masterブランチにマージを行い完了となります。

hotfix(ホットフィックス)ブランチ

masterブランチで不具合が生じた場合に対応するブランチです。

masterブランチから派生させて作成します。

命名規則は「hotfix-バージョン番号-修正内容」のようにつけていきます。
releaseブランチと同じく、更新を行ったらdevelopブランチとmasterブランチにマージを行い完了となります。

命名規則に/(スラッシュ)は使わないようにする

基本的な区切り文字は「-(ハイフン)」になります。

「/(スラッシュ)」を使ってしまうと作成できない場合があるからです。

例えばdevelopブランチを複数作らないといけない場合があるとします。
最初に「develop」という名前で作ったあとに「develop/0001」というようにつけようとすると作成できません。

gitではスラッシュをディレクトリ構造として処理するようで既に「develop」という名前だけで作っているとその下に作成する事ができないみたいです。

masterブランチから初回作成時に「develop/0000」などで作成した場合は「develop/0001」として作成はできますが、あんまり良い方法ではないと思いますのでハイフンを使うようにしましょう。

さいごに

今回は、エクストでどのようにブランチを作成して運用しているかを紹介しましたが、各開発にあったやり方を取り入れていくと良いと思います。

ブランチ名は自由につける事ができますがある程度合わせていくと今後入った人達にも説明がしやすく、管理もしやすくなると思いますので是非活用してみてください!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

six − 3 =