Menu
CoddyTech

Git Cherry-pick

Terakhir diperbarui

git cherry-pick menyalin perubahan dari satu atau beberapa commit tertentu dan menerapkannya ke branch saat ini sebagai commit baru. Dengan cara ini kamu bisa mengambil satu perbaikan dari branch lain tanpa harus merge seluruh branch itu. Berguna untuk backport hotfix atau mengambil satu commit dari feature branch.

Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.

git cherry-pick menyalin satu commit pilihan dari branch lain dan menerapkannya ke branch-mu saat ini.

Sintaks

PerintahFungsinya
git cherry-pick <hash>Menerapkan satu commit ke branch saat ini
git cherry-pick <a> <b>Menerapkan beberapa commit secara berurutan
git cherry-pick <a>..<b>Menerapkan rentang commit (tanpa a)
git cherry-pick -n <hash>Menerapkan perubahan tapi belum membuat commit
git cherry-pick -x <hash>Mencatat commit aslinya di pesan commit

Selama cherry-pick berjalan

Kalau cherry-pick menemui konflik, selesaikan lalu lanjutkan.

PerintahFungsinya
git cherry-pick --continueMelanjutkan setelah konflik selesai
git cherry-pick --abortMembatalkan dan mengembalikan branch
git cherry-pick --skipMelewati commit saat ini

Contoh langkah demi langkah

LangkahPerintahHasil
1git log --oneline hotfixCari hash perbaikannya, misalnya a1b2c3d
2git switch mainPindah ke branch yang akan menerima perbaikan
3git cherry-pick a1b2c3dMenerapkan perbaikan ke main sebagai commit baru dengan hash baru

Pertanyaan seputar git cherry-pick

Apa fungsi git cherry-pick?

Perintah ini mengambil perubahan dari commit tertentu dan menerapkannya ke branch saat ini sebagai commit yang benar-benar baru (dengan hash baru). Berbeda dengan merge atau rebase, cherry-pick tidak membawa seluruh branch, hanya commit yang kamu sebutkan.

Kapan sebaiknya memakai cherry-pick?
Pakai saat kamu butuh satu commit tertentu di tempat lain, misalnya backport perbaikan bug dari main ke release branch, atau mengambil satu commit yang berguna dari feature branch tanpa merge semuanya. Kalau kamu ingin seluruh branch, pakai merge atau rebase.
Bagaimana cara cherry-pick beberapa commit?
Sebutkan semuanya: git cherry-pick <a> <b> <c> menerapkan masing-masing secara berurutan. Untuk rentang yang berurutan, pakai git cherry-pick <start>..<end>, yang menerapkan setiap commit setelah start sampai dan termasuk end. Pakai <start>^..<end> kalau kamu ingin start ikut disertakan.
Bagaimana kalau cherry-pick menimbulkan konflik?
Git berhenti sejenak dan menandai file yang konflik. Selesaikan konfliknya, jalankan git add pada hasilnya, lalu jalankan git cherry-pick --continue. Untuk mundur sepenuhnya, pakai git cherry-pick --abort, yang mengembalikan branch-mu ke keadaan sebelum cherry-pick dimulai.
Bagaimana cara cherry-pick commit dari branch lain?
Cari hash commit-nya dengan git log --oneline <other-branch>, pindah ke branch yang akan menerimanya, lalu jalankan git cherry-pick <hash>. Kamu juga bisa memberikan nama branch, seperti git cherry-pick feature, yang mengambil commit di ujung branch tersebut.
Apa bedanya cherry-pick dan merge?
git merge membawa setiap commit di sebuah branch dan mencatat titik tempat kedua riwayat bergabung. Cherry-pick hanya menyalin commit yang kamu sebutkan, sebagai commit baru, tanpa kaitan ke commit aslinya. Merge branch-nya kalau kamu ingin semuanya; cherry-pick kalau kamu hanya ingin satu atau dua commit.
Bisakah saya berlatih ini secara online?
Bisa. Buka playground terminal untuk menjalankan git cherry-pick di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara memindahkan commit antar-branch langkah demi langkah.
Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai