1. 導入
開発をしていると、こんな場面に出会うことがあります。
「別ブランチにあるバグ修正を、今のブランチにだけ反映したい」
「大きな変更はまだいらないけど、この1つのコミットだけ欲しい」
そんなときに便利なのが git cherry-pick です。
名前のとおり「サクランボを摘み取る」ように、欲しいコミットだけ取り込むことができます。
2. git cherry-pickとは
git cherry-pick は、指定したコミットを現在のブランチにコピーして反映するコマンドです。
ブランチ全体をマージするのではなく、必要な修正だけを取り込めるのが特徴です。
イメージすると:
-
merge→ ブランチごと取り込む -
cherry-pick→ 特定のコミットだけ摘み取る
3. 基本の使い方
単一のコミットを取り込む
git checkout feature/login
git cherry-pick abc1234
abc1234 はコミットハッシュ。
現在のブランチに、その修正内容が新しいコミットとして追加されます。
複数のコミットをまとめて取り込む
git cherry-pick abc1234..def5678
abc1234(開始コミットハッシュ) から def5678 (終了コミットハッシュ)までのコミットを一括で取り込めます。
複数を個別指定して取り込む
git cherry-pick abc1234 def5678 987zyx
これで任意の複数コミットをまとめて適用できます。
4. 実務での活用例
-
緊急バグ修正をリリースブランチに反映
開発ブランチで修正した内容を、リリース用のブランチに部分適用。 -
部分的な機能だけ取り込みたいとき
大規模な変更の一部だけ別ブランチに持っていきたいケース。 -
テスト用に修正を取り込む
一部の修正だけテスト環境に反映して確認する場合。
5. 注意点
-
コンフリクトが発生することがある
→mergeと同じように競合解決が必要になることがあります。 -
履歴が複雑になる
→ 同じ修正が複数ブランチに現れるため、履歴の追跡が難しくなることがあります。 -
使いどころを見極める必要がある
→ 小さな修正なら便利ですが、大きな変更を無理にcherry-pickするのはおすすめしません。
6. まとめ
git cherry-pick は「欲しいコミットだけを摘み取る」コマンド。
緊急対応や部分的な修正にとても便利。
ただし多用しすぎると履歴が複雑になるので、使いどころを見極めて活用しましょう!
宣伝
現在わが社、くすりの窓口では長期インターン・1DAYインターン、中途採用に力を入れています!
ぜひこの機会に応募してください!
※細かい要項は以下のリンクを確認してください。また長期インターンに関してはリンクのフォームからお問い合わせください。