Kategoriler
Programlama

Git cherry-pick nedir? Nasıl kullanılır?

git cherry-pick komutu nedir? Ne işe yarar? git cherry-pick komutu nasıl kullanılır?

Versiyon kontrol sistemleri hayatımıza girdiğinden beri biz geliştiriciler için çeşitli faydalar sağladı ve büyük projelerde geliştirme sürecini büyük ölçüde iyileştirdi. Versiyon kontrol sistemleri içerisinde, çıktığı günden beri popülerliğini koruyan Git; açık kaynaklı yapısı, ücretsiz olması ve gelişmiş özellikleri ile her geliştiricinin bilmesi gereken bir teknoloji haline geldi.

Daha önce Git : Sürüm Kontrol Sistemi başlıklı paylaşımımda Temel git kullanımı, git komutları ve popüler remote repo servisi github.com kullanımı ile ilgili bilgiler vermiştim. Eğer git hakkında bilgi sahibi değilseniz öncelikle o paylaşımıma bakmanızı öneririm.

Büyük projeler ya da bir ekip tarafından geliştirilen projelerde Git Branch kullanımı da oldukça önemli bir yere sahiptir. Ve Git Branchlerini kullanarak proje geliştiriyorsanız ya da böyle bir projeye dahil olduysanız mutlaka bilmeniz gereken bir git komutu daha vardır: cherry-pick.

Cherry Pick nedir?

cherry-pick komutunu kısaca tanımlamak gerekirse; bir branch de oluşturduğunuz sürümü (commit) başka bir branch’e çekmek/dahil etmek için kullanılır.

Şöyle basit bir örnekle açıklama izin verin. Bir yazılım geliştiriyorum ve geliştirdiğim bu yazılım için iki branch kullanıyorum. Birincisi master, ikincisi developer olsun. Master branchi test edilmiş ve kullanıma hazır versiyonun bulunduğu branch, developer branchi ise yeni özelliklerin vs. eklendiği branch olsun. Master branchinde basit ama kritik bir hata çıktı acilen düzeltilmesi gerekiyor. Girip hemen hatayı düzelttiniz ve commit ettiniz. Sonra fark ettiniz ki; değişikliği master değil, developer branchinde yapmışsınız. Bu şekilde developer branchini master branchine merge ederseniz henüz test edilmemiş kodlarımız da master branchine dahil olmuş olacak. Öyleyse tüm developer branchini dahil etmek yerine sadece ilgili commiti master branchine dahil etmemiz gerekir. İşte bu noktada cherry-pick kullanılır.

Cherry Pick nasıl kullanılır?

Şimdi yukarıda verdiğim örnek üzerinden kullanımını anlatmam gerekiyorsa öncelikle bize ilgili commit işleminin sha1 formatındaki kimlik bilgisi gerekiyor. (Hala developer branchinde olduğumuzu unutmayın.) Aşağıdaki komutlardan birini yürüterek son commit işleminin sha1 formatındaki kimlik bilgisine ulaşabilirsiniz.

git rev-parse HEAD
git rev-parse --verify HEAD

Bu komut 33ef843436fc621a51e1f6dff094a2a41368ead7 benzeri [0-9] [a-f] arasındaki karakterlerden oluşan bir çıktı üretir. Bu commit işleminin sha1 formatındaki kimlik bilgisidir. Komutun ürettiği çıktıyı kopyalayın.

Not : Daha önceki commit işlemleri için yapılacaksa; örneğin git log komutu ile istenilen commit işleminin sha1 formatındaki kimlik bilgisine ulaşabilirsiniz.

Sonrasında master branchine geçmek için;

git checkout master

komutu ile master branchine geçiyoruz ve git cherry-pick <sha1> komutunu veriyoruz.

git cherry-pick 33ef843436fc621a51e1f6dff094a2a41368ead7

Hepsi bu kadar. Remote repo kullanıyorsanız artık push işlemini gerçekleştirebilirsiniz.

Yazar Muhammet ŞAFAK

1992 İstanbul doğumluyum. 2008 yılından beri profesyonel olarak PHP geliştiriyorum. Her ne kadar ağırlıklı olarak PHP üzerinde çalışsam da C, C++, Python, Java programlama dillerini de kullanıyorum.

Bir Cevap Yazın