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 releaseMerge it back everywhere
出荷後、hotfixはメインの開発ラインと、アクティブなリリースブランチへマージし直す必要があります。そうしないと、次のバージョンでバグが再発します。伝播されないhotfixは、いずれ起きるリグレッションそのものです。
Hotfixes in CI/CD
hotfixには、本番までの速く信頼できるパスが必要です。CIは依然として実行されますが、パイプラインは重要なテストに焦点を絞るよう簡素化され、修正が数時間ではなく数分で出荷されます。ここでこそ、速く信頼できるランナーが最も重要になります。遅延のコストが稼働中の障害だからです。
Hotfix discipline
- 開発ラインではなく、本番コードからブランチを切ります。
- 変更は最小限に保ち、そのインシデントに焦点を絞ります。
- より悪い二次バグを避けるため、プレッシャー下でもCIを実行します。
- 修正をmainと任意のリリースブランチへマージし直します。
重要なポイント
- hotfixブランチは、稼働中のコードから緊急の本番バグをパッチします。
- 修正はmainとアクティブなリリースブランチへマージし直す必要があります。
- CI/CDは、hotfixが数分で出荷できるよう、速く焦点を絞ったパスを提供します。
関連ガイド
What Is a Release Branch?What is a release branch? An explainer on stabilizing a version on a dedicated branch, accepting only fixes,…
What Is GitFlow?What is GitFlow? An explainer on the branching model with develop, release, feature, and hotfix branches, whe…
What Is Cherry-Pick?What is git cherry-pick? Learn how it copies a single commit onto another branch, when to use it for backport…