Yeniden Tabanlama ve Birleştirme Karşılaştırması
Temiz ve doğrusal bir geçmiş için yeniden tabanlama ile birleştirmeyi karşılaştırın ve her birinin ne zaman kullanılacağını öğrenin.
Yeniden Tabanlama ve Birleştirme Karşılaştırması, CoddyKit'te ücretsiz bir Git & GitHub Professional Workflow 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, Git & GitHub Professional Workflow öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Git & GitHub Professional Workflow kursu toplamda 4 dersten oluşur.
Birleştirme mi, Yeniden Temellendirme mi? Seçim
Git ile çalışırken dalınızın, örneğin feature dalınızın main dalından ayrıldığını sık sık görürsünüz.
Bu değişiklikleri nasıl bir araya getirirsiniz? Git iki temel strateji sunar: birleştirme ve yeniden temellendirme. Her ikisi de bütünleştirme sağlar; ancak bunu temelden farklı şekillerde yapar ve sonuç olarak proje geçmişleri de farklı olur.
Birleştirme: Geçmişleri Birleştirme
Birleştirme, Git'in değişiklikleri bütünleştirmek için kullandığı varsayılan yöntemdir. Bir dalı başka bir dalla birleştirdiğinizde Git, kaynak dalın içeriğini alır ve hedef daldaki içerikle birleştirir.
Birleştirmenin temel özelliği, yeni bir birleştirme işlemi oluşturmasıdır. Bu işlemin iki üst işlemi vardır ve böylece ayrışmış iki geçmişin bir araya getirildiği açıkça gösterilir. Her iki dalın tam geçmişini korur.
Git Birleştirmesi Gerçekleştirme
Basit bir birleştirmeye bakalım. Bir feature dalı oluşturacak, bir işleme ekleyecek ve ardından bu dalı main ile yeniden birleştireceğiz.
git init my_merge_project
cd my_merge_project
echo "Initial content" > file.txt
git add .
git commit -m "Initial commit"
git branch feature
git checkout feature
echo "Feature A" >> feature.txt
git add .
git commit -m "Add feature A"
git checkout main
echo "Main update" >> main.txt
git add .
git commit -m "Update main"
git merge feature
git log --oneline --graphBirleştirme: Avantajlar ve Dezavantajlar
Birleştirme, paylaşılan dallar için basit ve güvenlidir; ancak 'karmaşık' bir geçmişe yol açabilir.
- Avantajlar:
- İşlemlerin tam geçmişini korur.
- Yıkıcı değildir, mevcut işlemleri yeniden yazmaz.
- Kullanımı ve anlaşılması kolaydır.
- Dezavantajlar:
- Çok sayıda birleştirme işlemi içeren 'gürültülü' bir geçmiş oluşturabilir.
- Birçok dalın birleştiği grafiğin görünümü karmaşık olabilir.
Yeniden Temellendirme: Geçmişi Yeniden Yazma
Yeniden temellendirme, değişiklikleri bir dizi işlemi yeni bir temel işleme taşıyarak veya birleştirerek bütünleştiren, birleştirmeye alternatif bir yöntemdir. Birleştirme işlemi oluşturmak yerine proje geçmişini yeniden yazar.
Esasen, özellik dalınızın işlemleri hedef dalın en son işleminin üzerine 'yeniden oynatılır' ve çalışmaya sanki oradan başlamışsınız gibi görünür. Böylece ek birleştirme işlemleri olmadan doğrusal bir geçmiş oluşturulur.
Git Yeniden Temellendirmesi Gerçekleştirme
Şimdi aynı senaryoyu yeniden temellendirme ile deneyelim. feature dalımızı main dalı üzerine yeniden temellendireceğiz.
feature dalındaki işlemin main dalının en son işleminin üzerine yeniden uygulandığına, ardından hızlı ileri birleştirmenin main dalını bu işleme yönelttiğine dikkat edin.
git init my_rebase_project
cd my_rebase_project
echo "Initial content" > file.txt
git add .
git commit -m "Initial commit"
git branch feature
git checkout feature
echo "Feature B" >> feature.txt
git add .
git commit -m "Add feature B"
git checkout main
echo "Main update 2" >> main.txt
git add .
git commit -m "Update main 2"
git checkout feature
git rebase main
git checkout main
git merge feature
git log --oneline --graphYeniden Temellendirme: Avantajlar ve Dezavantajlar
Yeniden temellendirme temiz bir geçmiş oluşturur; ancak paylaşılan dallarla ilgili önemli bir uyarı içerir.
- Avantajlar:
- Temiz ve doğrusal bir proje geçmişi oluşturur.
- İşleme geçmişinde gezinmek ve onu anlamak daha kolaydır.
- Bütünleştirmeden önce işlemleri düzenleyebilirsiniz (birleştirme, yeniden sıralama).
- Dezavantajlar:
- İşleme geçmişini yeniden yazar.
- Zaten paylaşılan (genel) bir uzak depoya gönderilmiş işlemlerde kullanılırsa tehlikeli olabilir.
Birleştirme ve Yeniden Temellendirme: Karşılaştırma
Temel farkların kısa bir özeti şöyledir:
- Birleştirme:
- Yeni bir birleştirme işlemi oluşturur.
- Tam ve eksiksiz geçmişi korur.
- Yıkıcı değildir.
- Grafik karmaşık olabilir.
- Yeniden temellendirme:
- Geçmişi yeniden yazar, birleştirme işlemi oluşturmaz.
- Doğrusal bir geçmiş elde edilmesini sağlar.
- Yıkıcıdır (işleme kimliklerini değiştirir).
- Grafik çok temizdir.
Stratejinizi Seçme
Peki hangisini ne zaman kullanmalısınız?
- Şu durumlarda Birleştirme kullanın:
- Genel veya paylaşılan dallar üzerinde çalışırken (örneğin
main,develop). - Projenizin tam geçmişini korumanız gerektiğinde.
- Ayrışmış geçmişlerin ne zaman birleştirildiğini açıkça göstermek istediğinizde.
- Şu durumlarda Yeniden Temellendirme kullanın:
- Göndermeden önce özel özellik dalınız üzerinde çalışırken.
- Temiz ve doğrusal bir geçmiş istediğinizde.
- Bütünleştirmeden önce özellik dalınızdaki işlemleri düzenlemek istediğinizde (örneğin birleştirmek, yeniden sıralamak).
Altın Kural: Paylaşılan bir uzak depoya zaten gönderilmiş işlemleri asla yeniden temellendirmeyin! Paylaşılan geçmişi yeniden temellendirmek, çalışma arkadaşlarınız için büyük sorunlara yol açabilir.
Hızlı Kontrol: Birleştirme mi, Yeniden Temellendirme mi?
Git'in iki temel bütünleştirme stratejisinin özelliklerini değerlendirin.
Özet: Birleştirme ve Yeniden Temellendirme
Bu derste değişiklikleri bütünleştirmenin iki temel yolunu, birleştirmeyi ve yeniden temellendirmeyi inceledik.
- Birleştirme, tüm özgün işlemleri koruyarak geçmişleri yeni bir birleştirme işlemiyle bir araya getirir.
- Yeniden temellendirme, işlemleri taşıyarak geçmişi yeniden yazar ve doğrusal bir akış oluşturur.
Ekibinizin iş akışına göre bilinçli seçim yapın ve altın kuralı unutmayın: genel geçmişi asla yeniden temellendirmeyin! Bu anlayış, temiz ve iş birliğine dayalı bir Git iş akışını sürdürmek için çok önemlidir.
Sıkça Sorulan Sorular
“Yeniden Tabanlama ve Birleştirme Karşılaştırması” dersi ücretsiz mi?
Evet — “Yeniden Tabanlama ve Birleştirme Karşılaştırması” 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 Git & GitHub Professional Workflow kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Git & GitHub Professional Workflow kursu toplamda 4 dersten oluşur.
“Yeniden Tabanlama ve Birleştirme Karşılaştırması” dersinde ne öğreneceğim?
Temiz ve doğrusal bir geçmiş için yeniden tabanlama ile birleştirmeyi karşılaştırın ve her birinin ne zaman kullanılacağını öğrenin. Git & GitHub Professional Workflow 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.
Git & GitHub Professional Workflow öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Git & GitHub Professional Workflow, 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.
“Yeniden Tabanlama ve Birleştirme Karşılaştırması” 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 Git & GitHub Professional Workflow dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Git & GitHub Professional Workflow 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
- Özellik Dalı İş Akışı
- Gitflow İş Akışına Giriş
- Yeniden Tabanlama ve Birleştirme Karşılaştırması
- Ana Dal Temelli Geliştirme