Cherry-Pick

İleri Seviye Git

Amanda Crawford-Adamo

Software and Data Engineer

Cherry-pick nedir?

Belirli bir commit’teki değişiklikleri başka bir dala uygular

Tek Commit Cherry-Pick

git cherry-pick <commit-hash>

Birden Çok Commit Cherry-Pick

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

Amaç

  • Belirli hata düzeltmelerini dallar arasında uygulama
  • Özellikleri kararlı sürümlere geri alma
  • Deneysel değişiklikleri seçerek uygulama
  • Kaybolan commit’leri kurtarma
İleri Seviye Git

Cherry-pick örneği

Hem main hem de feature dallarının grafiği. Main’de iki commit var. Feature dalı, son commit’ten sonra main’den ayrılıyor.

Cherry-pick öncesinde main ve feature dalı günlüklerini gösteren iki görsel.

İleri Seviye Git

Cherry-pick süreci

  1. Main dalını checkout edin

    git checkout main
    
  2. Feature dalındaki def456 commit’inin değişikliklerini almak için cherry-pick çalıştırın.

    git cherry-pick def456
    

Hem main hem de feature dallarının grafiği. Main’de üç commit var. Feature, ikinci commit’ten sonra ayrılıp iki ek commit içeriyor. Main’in üçüncü commit’i, feature dalının son commit’inden cherry-pick edilmiştir.

İleri Seviye Git

Cherry-pick çatışmalarını çözme

Çatışma çözüm adımları
  1. Çatışan dosyaları elle düzenleyin
  2. Çözülen dosyaları aşamaya ekleyin: git add <resolved-files>
  3. --continue bayrağını çalıştırarak cherry-pick işlemine devam edin
git cherry-pick --continue
Cherry-pick'i durdurma

Cherry-pick işlemini durdurmak için --abort bayrağını kullanın

git cherry-pick --abort
İleri Seviye Git

Cherry-pick ne zaman kullanılır?

Kullanım alanları

  1. Acil düzeltmeler uygulama
  2. İzole özellikleri test etme

Dikkat edilecekler

  1. Yinelenen commit’ler oluşturabilir
  2. Aşırı kullanımda geçmişi karmaşıklaştırabilir
  3. Büyük değişikliklerde: merge veya rebase düşünün
İleri Seviye Git

Hadi pratik yapalım!

İleri Seviye Git

Preparing Video For Download...