Git Cherry Pick nedir?



Git Cherry Pick, belirli bir commit'i bir branch'ten alıp başka bir branch'e uygulamanıza olanak sağlayan bir Git komutudur. İşte Git Cherry Pick hakkında kısa bir açıklama:

  1. Amacı: Bir branch'teki spesifik değişiklikleri, tüm commit geçmişini taşımadan başka bir branch'e aktarmak için kullanılır.
  2. Kullanımı: git cherry-pick <commit-hash> şeklinde kullanılır.
  3. Avantajları:
    • Sadece istediğiniz değişiklikleri seçebilirsiniz.
    • Karmaşık merge işlemlerinden kaçınabilirsiniz.
  4. Dikkat edilmesi gerekenler:
    • Aynı değişikliği birden fazla yere uygulamak, gelecekte çakışmalara neden olabilir.
    • Orijinal commit'in bağlamını kaybedebilirsiniz.
  5. Ne zaman kullanılmalı:
    • Hata düzeltmelerini farklı sürümlere uygulamak için.
    • Deneysel bir özelliği ana geliştirme branch'ine taşımak için.

Git Cherry Pick, dikkatli kullanıldığında çok faydalı bir araçtır, ancak projenin geçmişini karmaşıklaştırabilir. Bu nedenle, mümkün olduğunca normal merge işlemlerini tercih etmek ve Cherry Pick'i özel durumlar için saklamak genellikle iyi bir uygulamadır.

Bu konu hakkında daha fazla bilgi veya örnek ister misiniz?

Sze Git Cherry Pick'in kullanılabileceği gerçekçi bir senaryo sunayım:

Senaryo: Bir web uygulaması geliştiriyorsunuz ve iki ayrı branch'te çalışıyorsunuz:

main branch: Kararlı sürüm
feature-x branch: Yeni bir özellik üzerinde çalışıyorsunuz

Durum şöyle gelişiyor:

  1. feature-x branch'inde çalışırken, önemli bir güvenlik açığını fark ettiniz ve hemen düzelttiniz.
  2. Bu düzeltme, feature-x branch'inde bir commit olarak kaydedildi.
  3. Ancak, bu güvenlik düzeltmesi acil ve main branch'ine hemen uygulanması gerekiyor. Fakat feature-x hala tamamlanmadı ve main'e merge edilmeye hazır değil.

İşte burada Git Cherry Pick devreye girer:


# main branch'ine geçiş yapın git checkout main # Güvenlik düzeltmesinin commit hash'ini bulun (örneğin: abc123) git log feature-x # Cherry pick işlemini gerçekleştirin git cherry-pick abc123 # Değişiklikleri uzak depoya gönderin git push origin main

Bu işlem sonucunda:

  • Güvenlik düzeltmesi main branch'ine uygulanmış olur.
  • feature-x branch'indeki diğer değişiklikler etkilenmez.
  • Kararlı sürümünüz (main) hızlıca güncellenmiş ve güvenlik açığı kapatılmış olur.

Bu senaryo, Git Cherry Pick'in nasıl spesifik ve önemli değişiklikleri hızlıca uygulayabildiğinizi gösteriyor. Böylece, tüm geliştirme branch'ini merge etmeden veya beklemeden kritik güncellemeleri yapabilirsiniz. 

Please Select Embedded Mode To Show The Comment System.*

Daha yeni Daha eski

نموذج الاتصال