Sobes.tech
Junior

Cherry-pick nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

git cherry-pick bir daldan diğerine bir veya birkaç commit'in taşınması için kullanılır.

Çalışma prensibi:

  1. Kaynak dalda belirtilen commit(ler)i seçer.
  2. Bu commitlerdeki değişiklikleri aktif olan mevcut dala uygular.
  3. Orijinal commitlerle aynı değişiklikler ve mesajlara sahip yeni commitler oluşturur.

Ne zaman kullanılır:

  • Bir hatayı düzeltmek için belirli bir commit'i (örneğin, üretim) başka bir dala (örneğin, geliştirme) taşımak, diğer değişiklikleri etkilemeden.
  • Bir özellik dalından diğerine değişiklikleri uygulamak, tamamen birleştirmeden.
  • Yanlış merge işlemlerini iptal edip, ayrı commitleri korumak.

merge ve rebase ile farkları:

  • merge: Bir dalın tüm değişiklik geçmişini diğerine entegre eder.
  • rebase: Commit geçmişini yeniden yazarak, onları yeni bir temel üzerine taşır.
  • cherry-pick: Sadece seçilen commitleri uygular, yeni commitler oluşturur ve orijinal commitlerin geçmişini değiştirmez.

Ana komut:

# Bir commit'i taşımak
git cherry-pick <commit-hash>

# Birkaç commit'i taşımak (sırasıyla belirtilen)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Örnek:

Diyelim ki main ve feature adında iki dal var. feature dalında fix-typo adlı bir commit yapılmış. Bu commit'in main dalına taşınması gerekiyor.

# Hedef dala geçiş yap
git checkout main

# feature dalındaki commit hash'ini kullanarak cherry-pick yap
git cherry-pick 7f3bca2 # Commit hash örneği

Komut çalıştırıldıktan sonra, main dalında fix-typo ile aynı değişiklikleri içeren yeni bir commit oluşur, ancak farklı bir hash ile.