▲ 【Day 25】仕様変更・機能のリリース順序入れ替え(チェリーピック) 👨🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 24では、本番環境の緊急障害に対応する「Hotfix」の完全手順と、developへのマージバックによる先祖返り防止サイクルを学びました。 本日のDay 25は、現場のエンジニアなら誰しも一度は遭遇する波乱のシチュエーション—— 【仕様変更・機能のリリース順序入れ替え(チェリーピック)】 を徹底解説します! 「次の定期リリースに向けて、機能A(AIレコメンド機能)と機能B(請求書PDF決済機能)を並行して開発していたが、突然クライアントや経営陣から『機能Aは仕様再検討で来月に延期!でも機能Bだけは契約上、明日のリリースにどうしても間に合わせてほしい!』と頼まれた……」 このような「リリース順序の逆転」や「特定機能だけの先行リリース」は、アジャイル開発でも受託開発でも日常茶飯事です。 Subversion (SVN) や Visual SourceSafe (VSS) で開発していた時代、これに対応するのはまさに悪夢でした。トランク(trunk)に時系列でコミットされた変更の中から、関係するファイル差分を手作業で洗い出し、別ブランチへ手動でコピペしてビルドする「手動リビジョンマージ」を行っていました。その結果、未完成な機能Aのコードが誤って混入したり、コピペ漏れによるコンパイルエラーや実行時例外が多発していました。 しかしGitなら、 「git cherry-pick」 という極めて強力な武器があります! Gitのコミットは、独立した変更パッチとして管理されています。そのため、木になっている熟した美味しいさくらんぼをスプーンで摘まみ取るように、 「機能Bに関する特定のコミットだけ」 を狙い撃ちして、安全にリリースブランチや本番ブランチへ移植・複製することができます! ...