Sobes.tech
Junior

Sürüm kontrol sistemleri bağlamında cherry-pick nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Git'te cherry-pick, belirli bir commit'ten değişiklikleri başka bir dala uygulamayı sağlayan bir işlemdir. Bu, belirli düzeltmeleri veya fonksiyonları bir daldan diğerine taşımak istediğinizde, sonraki tüm commit'leri taşımadan faydalıdır.

Uygulama:

  1. Commit seçimi: "kopyalanacak" commit'in hash'i belirlenir.
  2. Hedef dala geçiş: Değişikliklerin uygulanacağı dala geçilir.
  3. cherry-pick işlemi: git cherry-pick <commit-hash> komutu çalıştırılır. Git, seçilen commit'ten değişiklikleri mevcut dala uygulamaya çalışır.
# Hedef dala geçiş
git checkout main

# abcdef1 hash'li commit'ten değişiklikleri uygula
git cherry-pick abcdef1

Kullanım senaryoları:

  • Eski bir sürüm dalında hata düzeltme.
  • Geliştirme dalından staging veya prodüksiyona belirli bir özelliğin taşınması.
  • Belirli bir commit'ten değişiklikleri geri alma (-n seçeneği ve ardından git revert kullanılarak).

merge ve rebase'den farkları:

  • merge, bir dalın tüm değişikliklerini diğerine entegre eder.
  • rebase, bir dalın tüm commit'lerini diğerinin üzerine taşır.
  • cherry-pick, yalnızca seçilen commit'i taşır ve aynı değişikliklerle yeni bir commit oluşturur.

Önemli not: cherry-pick, yeni bir hash ile yeni bir commit oluşturur. Bu, aynı commit'in daha sonra başka bir şekilde hedef dal ile birleştirilmesi durumunda değişikliklerin çoğalmasına neden olabilir. Dikkatli kullanılmalı ve sonuçları anlaşılmalıdır.