Cherry-Pick

Git Tingkat Lanjut

Amanda Crawford-Adamo

Software and Data Engineer

Apa itu cherry-pick?

Menerapkan perubahan dari commit tertentu ke branch lain

Cherry-pick satu commit

git cherry-pick <commit-hash>

Cherry-pick beberapa commit

git cherry-pick <hash1> <hash2> ..

Tujuan

  • Menerapkan perbaikan bug spesifik antar branch
  • Mengembalikan fitur ke versi stabil
  • Menerapkan perubahan eksperimental secara selektif
  • Memulihkan commit yang hilang
Git Tingkat Lanjut

Contoh cherry-pick

Graf cabang main dan feature. Main punya dua commit. Cabang feature bercabang dari main setelah commit terakhir.

Dua gambar yang menampilkan log cabang main dan feature sebelum proses cherry-pick.

Git Tingkat Lanjut

Proses cherry-pick

  1. Checkout cabang main

    git checkout main
    
  2. Jalankan cherry-pick untuk membawa perubahan commit def456 dari cabang feature.

    git cherry-pick def456
    

Graf cabang main dan feature. Main punya tiga commit. Cabang feature bercabang dari main setelah commit kedua dengan dua commit tambahan. Commit ketiga main adalah hasil cherry-pick dari commit terakhir cabang feature.

Git Tingkat Lanjut

Menyelesaikan konflik cherry-pick

Langkah penyelesaian konflik
  1. Edit file yang konflik secara manual
  2. Tambahkan file yang sudah diselesaikan ke staging dengan git add <resolved-files>
  3. Lanjutkan proses cherry-pick dengan flag --continue
git cherry-pick --continue
Menghentikan cherry-pick

Untuk menghentikan operasi cherry-pick, gunakan flag --abort

git cherry-pick --abort
Git Tingkat Lanjut

Kapan menggunakan cherry-pick

Kegunaan

  1. Menerapkan hotfix
  2. Menguji fitur terisolasi

Perhatian

  1. Dapat membuat commit duplikat
  2. Bisa mempersulit riwayat jika berlebihan
  3. Perubahan besar: pertimbangkan merge atau rebase
Git Tingkat Lanjut

Ayo berlatih!

Git Tingkat Lanjut

Preparing Video For Download...