エンジニアの皆さん、こんにちは。現場で泥沼のブランチ管理に疲弊し、「また誰かがルールを無視してコミットしたせいでリリースが台無しだ……」と頭を抱えた経験はありませんか?
今回は、Bitbucketの「ブランチモデル」という強力な機能を使い、「ルールを破りたくても破れない」という最強の規律をチームにインストールする方法を伝授します。
これは単なるツールの設定ではありません。チームの生産性を底上げし、無駄なコンフリクト(競合)を排除するための「開発の哲学」をコード化する作業です。
—
1. なぜ「ブランチモデル」を強制するのか?
開発現場でよくある失敗は、「なんとなくブランチを作ってしまうこと」です。
誰がどのブランチに何をマージすべきか。この認識がズレると、CI/CDパイプラインは崩壊します。
Bitbucketの「ブランチモデル」は、この「なんとなく」をシステム側で定義し、強制する仕組みです。これを設定すると、Bitbucketは「あ、これは新機能(feature)ですね。じゃあdevelopへマージするように誘導しますね」と、チーム全員の動きを自動的にガイドしてくれるようになります。
2. さあ、設定しよう:ブランチモデルの構築
まずは、Bitbucketのリポジトリ設定へ向かいましょう。
1. Bitbucketのリポジトリを開く
2. 左メニューの「Repository settings(リポジトリ設定)」をクリック
3. 「Workflow(ワークフロー)」セクションにある「Branching model(ブランチモデル)」を選択
ここで、以下のように役割を定義します。
- Development branch: `develop`
- Production branch: `master` (または `main`)
- Branch types:
- `feature/` (機能追加)
- `bugfix/` (バグ修正)
- `hotfix/` (緊急修正)
- `release/` (リリース準備)
これらを設定するだけで、Bitbucketは各ブランチが「何のためのものか」を理解します。
3. 「ルールを強制する」最強のハック:ブランチ権限の設定
モデルを定義しただけでは、まだ「性善説」に基づいた運用に過ぎません。「性悪説」に基づいた強制力が必要です。
同じく「Repository settings」の「Branch permissions(ブランチ権限)」を活用しましょう。
推奨する設定パターン:
- Productionブランチ(master): 「書き込み」をチーム全員禁止にします。マージは「Pull Request(PR)」経由のみ。さらに、「マージ前に最低1人の承認が必要」というルールを加えます。
- Developmentブランチ(develop): ここも同様に直接pushを禁止し、PRを通すようにします。
なぜこれをするのか?
直接pushを禁止することで、「全ての変更履歴がPRとして残り、かつピアレビューが義務化される」からです。これがチームの品質を担保する最大の防波堤となります。
4. 【実践】HelloWorld的な体験:ブランチ作成の自動化
設定が完了すると、UIに魔法のような変化が現れます。
右上の「Create branch」ボタンを押してみてください。
1. 「Type」を選択する(featureなど)
2. 「Key」を入力する(例: `ticket-101`)
すると、Bitbucketが自動的に `feature/ticket-101` という名前を生成してくれます。命名規則が崩れる余地がありません。
また、PR作成時にも、ターゲットブランチが自動的に「develop」として選択されるようになります。新人のエンジニアでも、迷うことなく正しいフローに乗れる。これが「標準化」の真髄です。
—
5. 現場で震えるほど役立つ「運用の極意」
ここまで設定すれば盤石ですが、さらに一歩先へ進むためのアドバイスを贈ります。
- PRテンプレートを活用する: リポジトリのルートに `.bitbucket/pull-request-template.md` を作成しましょう。「変更の目的」「テスト手順」「破壊的変更の有無」などを記載させます。思考のプロセスをコードに残すのです。
- CIをマージの条件にする: Bitbucket Pipelinesと連携し、`master`へのマージ前に必ずテストが成功することを条件にしてください。「テストが通っていないコードは、絶対にメインラインに入れない」という姿勢こそが、チームを強くします。
最後に
「ブランチモデル」の設定は、最初は少し窮屈に感じるかもしれません。しかし、規律は自由の対極にあるものではなく、自由を守るための土台です。
ルールを自動化し、ツールに任せることで、あなたは「コードの命名」のような小さな悩みに時間を使う必要がなくなります。その分、もっとクリエイティブな「価値を生むためのコード」に集中できるようになるはずです。
さあ、今すぐ設定を見直して、チームに最強の開発フローをインストールしてください。毎日の開発が、驚くほどスムーズになりますよ。応援しています。