Skip to content
Latchkey

hotfixブランチとは何か?

hotfixブランチとは、本番コードから切り出す短命のブランチで、緊急の稼働中バグを修正し、通常のリリースサイクルの外で素早く出荷するために使われます。

hotfixブランチは緊急事態のために存在します。深刻なバグが本番で稼働中で、次のリリースを待てない場合、本番コードから直接ブランチを切り、可能な限り小さな修正を行い、素早く出荷します。その後、修正が進行中の開発へ確実に戻って流れるようにします。

When you need a hotfix

hotfixは緊急の本番問題のためのものです。クラッシュ、セキュリティ問題、あるいは中核機能の破損などです。通常の機能パイプラインを待つのではなく、本番で稼働している正確なコードからブランチを切ることで、今ユーザーが手にしているものに修正がクリーンに適用されます。

Creating a hotfix branch

main(本番ライン)からブランチを切り、最小限の修正を行い、リリースの準備をします。

A hotfix off production
git switch -c hotfix/login-crash main
git commit -am "Guard against null session"
# fast-track review and release

Merge it back everywhere

出荷後、hotfixはメインの開発ラインと、アクティブなリリースブランチへマージし直す必要があります。そうしないと、次のバージョンでバグが再発します。伝播されないhotfixは、いずれ起きるリグレッションそのものです。

Hotfixes in CI/CD

hotfixには、本番までの速く信頼できるパスが必要です。CIは依然として実行されますが、パイプラインは重要なテストに焦点を絞るよう簡素化され、修正が数時間ではなく数分で出荷されます。ここでこそ、速く信頼できるランナーが最も重要になります。遅延のコストが稼働中の障害だからです。

Hotfix discipline

  • 開発ラインではなく、本番コードからブランチを切ります。
  • 変更は最小限に保ち、そのインシデントに焦点を絞ります。
  • より悪い二次バグを避けるため、プレッシャー下でもCIを実行します。
  • 修正をmainと任意のリリースブランチへマージし直します。

重要なポイント

  • hotfixブランチは、稼働中のコードから緊急の本番バグをパッチします。
  • 修正はmainとアクティブなリリースブランチへマージし直す必要があります。
  • CI/CDは、hotfixが数分で出荷できるよう、速く焦点を絞ったパスを提供します。

関連ガイド