Git — Cherry-Pick de Nedir?

K. Murat Baseren
2 min readMar 7, 2024

--

Git — Cherry-Pick de Nedir?

git cherry-pick komutu, Git'te belirli bir commit'i mevcut çalışma dalına uygulamanızı sağlayan bir yöntemdir. Bu işlem, seçilen commit'teki değişiklikleri alıp mevcut dalınızın üzerine yeni bir commit olarak ekler. Bu şekilde, bir dalda yapılan spesifik değişiklikleri başka bir dal ile paylaşabilirsiniz, bu da kodun tekrar kullanılabilirliğini ve takımlar arası işbirliğini kolaylaştırır.

Visual Studio ve Visual Studio Code ile Git, Github, Bitbucket ve TFS Eğitimi

Kullanımı

Temel kullanımı aşağıdaki gibidir.

git cherry-pick <commit-hash>

Burada <commit-hash> uygulamak istediğiniz commit'in benzersiz tanımlayıcısıdır.

Özellikleri ve Kullanım Senaryoları

  • Belirli Değişikliklerin Aktarılması: cherry-pick, farklı dallar arasında belirli değişiklikleri hızlı bir şekilde taşımanıza olanak tanır. Örneğin, bir hata düzeltmesi yalnızca bir dalda yapılmışsa ve bu düzeltmeyi başka bir dala uygulamak istiyorsanız, cherry-pick kullanabilirsiniz.
  • Esneklik: Bu işlem, birleştirme (merge) veya rebase işlemlerine kıyasla daha seçici bir yaklaşım sunar çünkü yalnızca belirli commit’leri hedefler.
  • Çakışma Potansiyeli: cherry-pick kullanılırken, mevcut dalınızdaki kod ile seçilen commit arasında çakışmalar olabilir. Bu durumda, Git çakışmaları manuel olarak çözmenizi isteyecektir.

Dikkat Edilmesi Gerekenler

  • Çakışmalar: cherry-pick işlemi sırasında çakışmalar meydana gelebilir. Bu seçilen commit'in uygulanacağı dal da farklı değişiklikler yapılmışsa ortaya çıkar. Çakışmaları manuel olarak çözmeniz gerekebilir.
  • Commit Geçmişi: cherry-pick, seçilen commit'in bir kopyasını oluşturur ve bu kopya dal geçmişinde aynı değişikliklerin birden fazla görünmesine neden olabilir. Bu işlem projenin commit geçmişini karmaşıklaştırabilir.

git cherry-pick komutu, Git'in güçlü ve esnek özelliklerinden biridir. Ancak, kullanırken dikkatli olmak ve projenin geçmişini(history) ve diğer geliştiricilerle olan birlikte çalışmayı göz önünde bulundurmak önemlidir.

Visual Studio ve Visual Studio Code ile Git, Github, Bitbucket ve TFS Eğitimi

--

--

K. Murat Baseren

Software Architect | .NET Developer | Project Manager | Instructor | Lifetime Learner