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
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
// Comments are closed.
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/
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.
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ı?
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.