Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
Cherry Pick nedir ve ne zaman kullanılır ?

Açık 2 Cevaplar 1620 Gösterim Genel Kavramlar
Selamlar herkese,

Git kullanırken cherry pick ifadesi ile karşılaştım. Tam olarak cherry pick nerelerde ve nasıl kullanılıyor ?

Teşekkürler

2 Cevap

0
Atılan bir commit içindeki kodları şu an checkout yapılmış olan branch üzerine alma işlemine denir. Daha detay için aşağıdaki linke de göz atabilirsiniz.

https://kodcu.com/2015/03/cherry-pick-nedir-nasil-yapilir/
(5.3k puan)
1

Bugün bir geliştirmeyi productiona almak için bir brach içinden sadece belirli commitleri almam gerekti ve nasıl yapmam gerektiğini biliyorum ama hiç tecrube etmemiştim. Cevap cherry-pick. Nasıl yaptığımı kısaca anlatayım. Güzel bir örnek olarak kalsın kenarda.

(x) ---..------c1----c2-----c3-----c4---->HEAD
(master)         ---.....................------c5------>HEAD

Farz edelim ki x branch üzerindeki c1, c2, c3 commitlerini master üzerine almak istiyoruz.

İlk olarak hedef olan branch üzerine geçiyoruz.

git checkout master

Sonra diğer branch üzerindeki commitleri cherry-pick diyerek çekeceğiz. Bunun için commit'in hash kodu gerekiyor. Ben sunucu üzerinden aldım(bitbucket) ama git log diye de logu görebiliriz

git cherry-pick c1 c2 c3

Arada boşluk bırakarak ve zaman sıralaması ile commit hash id lerini yazdım.

git status dediğimiz zaman artık master üzerinde 3 adet commit göreceğiz ve bunları push etmemizi isteyecek. git push ile repomuza gönderebiliriz.

Güzel ve etkili.

(5.3k puan)
2Yorumlar
(2.0k puan)
peki ya üst branchde önceden commitlerle gelen değişiklikler masterda yoksa sorun yaratır mı?

chery pick bize özetle istediğimiz bir commiti almamıızı sağlıyor diyebilir miyiz bir branch üzerindeki. dikkat etmemiz gereken ince bir detay var mı?
(5.3k puan)
Kümülatif şekilde önceden gelen commitleri almaz. Sadece bir commit içindeki değişiklikleri alır. PR (pull request) çıktığın zaman bütün değişiklikleri kümülatif alır.