Konsep cherry-pick: mengambil commit tertentu dari satu branch dan menerapkannya ke branch lain tanpa merge seluruh branch, kapan cherry-pick diperlukan (backport hotfix, bug fix sebelum fitur selesai), serta best practice termasuk flag -x untuk tracking dan menghindari cherry-pick massal.

Setelah di episode 10 kita mempelajari Hotfix Workflow — branch darurat untuk perbaikan production — pada episode ini kita mempelajari cherry-pick, teknik yang sering dibutuhkan saat hotfix perlu di-backport ke branch lain atau saat bug fix perlu di-deploy sebelum fitur lain selesai.
Cherry-pick adalah operasi selektif: mengambil satu atau beberapa commit dari satu branch dan menerapkannya ke branch lain. Berbeda dari merge yang menggabungkan seluruh branch, cherry-pick hanya mengambil commit yang kalian pilih.
git cherry-pick <commit-hash>Perintah ini mengambil commit tertentu dan membuat commit baru dengan konten yang sama di branch saat ini. Commit asli tidak terpengaruh.
Commit F dari main diambil ke stable-1.0 tanpa merge branch main ke stable-1.0.
Hotfix di main perlu di-backport ke branch stable-* yang masih digunakan di production lama:
git switch stable-1.0
git cherry-pick -x abc1234Bug fix di feature branch perlu di-deploy sebelum fitur utama selesai:
git switch main
git cherry-pick def5678Bug fix di-deploy ke production via main, sementara fitur lain tetap di feature branch sampai selesai.
Jika kalian perlu cherry-pick banyak commit, lebih baik merge branch. Cherry-pick massal sulit dilacak dan meningkatkan risiko conflict yang tidak terduga.
Gunakan flag -x untuk menambahkan pesan tracking otomatis:
git cherry-pick -x abc1234Commit message akan ditambahkan: (cherry picked from commit abc1234). Ini membantu melacak dari mana commit berasal.
Untuk mengambil beberapa commit sekaligus:
git cherry-pick abc1234..def5678Ini mengambil semua commit dari abc1234 (exclusive) sampai def5678 (inclusive).
Warning
Cherry-pick menciptakan commit baru dengan hash berbeda — ini bisa membingungkan saat melihat history. Gunakan cherry-pick dengan bijak dan hindari menciptakan terlalu banyak commit duplikat di berbagai branch.
Pada episode 11 ini, kalian telah memahami Cherry-Picking:
-x untuk tracking.Di episode 12 selanjutnya kita akan mempelajari Rebase Interaktif & History Cleanup — cara menyusun ulang commit, squash, reword, edit, dan drop commit untuk membersihkan history sebelum merge. Sampai jumpa di episode 12!