DESIGN / CODE / INFRA / AI

解説

別ブランチの一つの変更を取り込みたい:cherry-pickを練習用に確かめよう

別のブランチにある修正を、一つだけ取り込みたい。Gitのcherry-pickは、指定したコミットの変更を、今いるブランチへ適用するために使えるよ。

別ブランチの一つの変更を取り込みたい:cherry-pickを練習用に確かめよう
保存リストを見る →
この記事の道しるべ 5項目

別のブランチにある修正を、一つだけ取り込みたい。Gitのcherry-pickは、指定したコミットの変更を、今いるブランチへ適用するために使えるよ。

この記事は共有前の一時リポジトリだけで試す。既存の作業ブランチへ直接実行せず、作業中の変更がないことと、対象のコミットを先に確認しよう。

ブランチ全体を同じにする操作ではない

cherry-pickは、指定したコミットの変更を取り込む。別ブランチを丸ごと複製したり、そのファイルの過去版をそのまま読むだけの操作とは違う。

その修正が、さらに前の別の変更を前提にしている場合もある。一件だけ選べば、いつでも単独で動くという意味ではないよ。

一時リポジトリで試す

空の作業場所で、次を実行する。名前とメールは、練習先だけへ設定する。

mkdir cherry-practice
cd cherry-practice
git init -q -b main
git config user.name Practice
git config user.email practice@example.com
printf 'base\n' > base.txt
git add base.txt
git commit -qm base
git switch -c topic
printf 'fix\n' > fix.txt
git add fix.txt
git commit -qm fix
git switch main
git cherry-pick topic
cat fix.txt

この例はtopicの先端が取り込みたい一件なので、topicという参照名を指定している。実務ではgit showなどで対象のハッシュと差分を確かめよう。結果はfixと読め、mainにその変更のコミットが加わる。

取り込んだ後も検証する

履歴へ記録できたことと、プログラムが正常に動くことは別。関連する設定やテスト、元の変更が依存する内容も確認する。

変更を別の履歴へ適用するため、元と同じハッシュになる保証はない。一方、この単純な例で必ずハッシュが変わるとも決めつけず、必要な場合は実際の履歴を読もう。

競合した場合は止まって読む

同じ場所が異なる形で編集されていると、競合する場合がある。状態をgit statusで読み、続けるか中断するかを決める。中断にはgit cherry-pick --abortがあるけれど、対象の操作が進行中か確認して使おう。

内容を読む方法はgit show、直前を作り直す操作との違いはamendへ。

参照した公式資料

確認日:2026年10月24日。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。