Git Cherry Pick
Pendahuluan
git cherry-pick digunakan untuk mengambil satu atau beberapa commit tertentu dari branch lain dan menerapkannya ke branch saat ini, tanpa melakukan merge penuh.
Dengan kata lain, cherry-pick memungkinkan kamu memindahkan commit secara selektif, bukan seluruh cabang seperti Rebase.
Cara Melakukan cherry pick
Pada kasus diatas kita akan hanya mengambil commit dari branch nav dan hanya mengambil commit 'Bugfix in config' saja dan digabungkan ke branch main 1 .
Pertama dapatkan dulu hash commit dari commit yang ingin diambil (branch nav) dengan menggunakan perintah
$ git log nav --onelineKemudian pastikan kita sudah berada di branch utama yang menerima commit dari cherry pick yaitu branch main.
$ git checkout main
$ git statusAmbil hash commit dari branch nav yaitu 4314d45 dan jalankankan perintah berikut:
$ git cherry-pick 4314d45
Sekarang branch main sudah memiliki commit baru yaitu 'Bugfix in config' dan hash-nya juga berbeda.
cheery pick multi commit
cherry-pick juga bisa mengambil beberapa commit sekaligus. Contohnya seperti kasus pada gambar dibawah ini
Pada kasus diatas kita mengambil 2 commit pada branch nav yaitu commit 'Bugfix in config' & 'Added logo to footer'.
Cara melakukannya sama, ambil hash commit yang ingin digabungkan dengan perintah:
$ git log nav --onelineDan jalankan perintah dibawah ini
$ git cherry-pick 38c452 3a3bd61
Jika melakukan multi cherry-pick urutan hash sangat berpengaruh
Pada kasus diatas commit terbaru paling depan di branch main adalah 2cea4bd yaitu commit di branch nav paling bawah.
Resolve cheery pick yang Konflik
Jika cherry pick terjadi conflict seperti kasus diatas ada beberapa cara mengatasinya 2:
1. Batalkan commit dengan perintah:
$ git cherry-pick --abort2. Resolve Conflict
Pebaiki conflict nya, gunakan perintah git status untuk mendapatkan file apa saja yang konflik. Setelah memperbaiki konflik nya jalankan perintah dibawah ini:
$ git cherry-pick --continue