Gönderimleri Seçerek Uygulama
`git cherry-pick` kullanarak tek tek gönderimleri bir daldan diğerine seçerek uygulamayı anlayın.
Gönderimleri Seçerek Uygulama, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
İşlemeleri Seçerek Taşıma
Bir dalın tamamına değil de yalnızca tek bir belirli değişikliğine ihtiyacınız varsa ne yaparsınız? git cherry-pick, deponuzun geçmişindeki herhangi bir yerden tek bir işlemeyi doğrudan geçerli dalınıza uygulamanızı sağlar.
Bu, ağaçtan tek bir kiraz koparmaya benzer! Özgün işlemedeki değişiklikleri yineleyen yepyeni bir işleme geçerli dalınızda oluşturulur.
Cherry-Pick Ne Zaman Kullanılır
Büyük bir özellik dalında çalıştığınızı ve orada yaptığınız kritik bir hata düzeltmesinin ana üretim dalınızda da hemen şimdi gerekli olduğunu keşfettiğinizi düşünün. Özellik dalının tamamını henüz birleştirmek istemiyorsunuz.
Bu, cherry-pick için kusursuz bir senaryodur. İlişkisiz çalışmaları beraberinde getirmeden yalıtılmış değişiklikleri taşımanıza yardımcı olur.
Temel Komut
Temel komut basittir: git cherry-pick <commit-hash>.
- Öncelikle, işlemeyi uygulamak istediğiniz dalda olduğunuzdan emin olun.
- Ardından, seçmek istediğiniz işlemenin benzersiz tanımlayıcısına (karmasına) ihtiyacınız vardır.
- Git, aynı değişiklikleri içeren yeni bir işlemeyi geçerli dalınızda oluşturur.
git cherry-pick <commit-hash>İşleme Karmalarını Bulma
Cherry-pick yapmak için karmaya ihtiyacınız vardır! Bunu git log kullanarak bulabilirsiniz.
--oneline seçeneği, özlü bir görünüm için oldukça kullanışlıdır:
git log --onelineCherry-Pick Senaryosunu Hazırlama
Basit bir senaryo oluşturalım. Bir main dalı ve bir feature/login dalı oluşturacağız. feature/login dalında, main dalına getirmek istediğimiz bir işleme oluşturacağız.
"HOTFIX" işlemesini main dalına getirmek istiyoruz.
git init my_project
cd my_project
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
git branch feature/login
git checkout feature/login
echo "Login feature added" >> login.txt
git add login.txt
git commit -m "Add basic login feature"
echo "Fix: Login button style" >> style.css
git add style.css
git commit -m "HOTFIX: Fix login button styling"Cherry-Pick İşlemini Gerçekleştirme
Şimdi main dalına geri dönün ve "HOTFIX" işlemesini uygulayın. "HOTFIX: Fix login button styling" işlemesinin karmasının abcdefg olduğunu varsayalım.
Bu komutu çalıştırdıktan sonra main dalınızda, abcdefg ile aynı değişiklikleri içeren yeni bir işleme görünür. Görmek için git log --oneline kullanın!
git checkout main
git cherry-pick abcdefgCherry-Pick Çakışmalarını Ele Alma
Birleştirmede olduğu gibi, iki geçmişte de aynı kod satırları farklı biçimde değiştirildiyse cherry-pick işlemi çakışmalara yol açabilir.
- Git işlemi duraklatır ve çakışan dosyaları işaretler.
- Dosyalardaki çakışmaları elle çözün.
- Çözülmüş dosyaları
git addile ekleyin. git cherry-pick --continueile tamamlayın.
# After resolving conflicts in editor:
git add .
git cherry-pick --continueBirden Çok İşlemeyi Seçme
Aynı anda birden fazla işlemeyi cherry-pick yapabilirsiniz.
Bir işleme aralığını seçmek için (hashA'dan başlayıp hashB'yi dahil etmeden):
git cherry-pick hashA..hashBNe Zaman Kullanılır (ve Ne Zaman Kullanılmaz)
Cherry-pick güçlüdür, ancak düşünerek kullanın.
- Şunlar için uygundur: Düzeltmeler ve ilişkisiz dallar arasında küçük, yalıtılmış değişiklikleri taşıma.
- Şunlar için daha az uygundur: Büyük değişiklik kümelerini düzenli olarak bütünleştirme; dikkat edilmezse yinelenen işlemelere yol açabilir ve geçmişin izlenmesini zorlaştırabilir. Dalın tamamını bütünleştirmek için birleştirmeyi veya yeniden temel almayı tercih edin.
Kısa Denetim: Cherry-Pick'in Amacı
feature/new-design dalınızda kritik bir biçimlendirme sorununu düzelten bir işlemeniz var. Özellik dalının tamamını birleştirmeden bu düzeltmeye hemen main dalınızda ihtiyacınız var.
Özet: Hedefli Değişiklikler
Bu derste, belirli işlemeleri geçerli dalınıza uygulamak için kullanılan yararlı bir komut olan git cherry-pick hakkında bilgi edindik.
- Hedef dalınızda aynı değişiklikleri içeren yeni bir işleme oluşturur.
- Düzeltmeler veya yalıtılmış değişiklikleri taşıma için idealdir.
- Genellikle
git log --onelineile bulunan işleme karmasına ihtiyacınız vardır. - Birleştirmede olduğu gibi çakışmaları çözmeye hazırlıklı olun.
Cherry-pick konusunda ustalaşmak, projenizin geçmişi üzerinde hassas denetim sağlar!
Sıkça Sorulan Sorular
“Gönderimleri Seçerek Uygulama” dersi ücretsiz mi?
Evet — “Gönderimleri Seçerek Uygulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Gönderimleri Seçerek Uygulama” dersinde ne öğreneceğim?
`git cherry-pick` kullanarak tek tek gönderimleri bir daldan diğerine seçerek uygulamayı anlayın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Gönderimleri Seçerek Uygulama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Birleştirme Çakışmalarını Elle Çözme
- Geçmiş için Etkileşimli Yeniden Tabanlama
- Gönderimleri Seçerek Uygulama
- Çakışma Çözümlerini Yeniden Kullanmak için Git Rerere Kullanımı