Üç Yönlü Birleştirme
Coddy'nin Terminal Journey'sinin Versiyon Kontrolü bölümünün bir parçası — ders 36 / 58.
Eğer her iki dal da birbirinden bağımsız olarak ilerlemişse, Git doğrudan ileri sarma (fast-forward) işlemini gerçekleştiremez. Bunun yerine bir üç yollu birleştirme (three-way merge) gerçekleştirir: ortak ataya ve iki dalın uçlarına bakar ve bunları birleştiren yeni bir commit oluşturur.
Bu yeni commit bir merge commit'idir. Her bir daldan birer tane olmak üzere iki ebeveyne sahiptir:
git switch main
git merge feature -m "Merge feature"-m bayrağı merge commit mesajını doğrudan sağlar, böylece Git bir düzenleyici açmaz.
Çoğu zaman Git, dosyaların farklı kısımlarına dokundukları sürece her iki daldaki değişiklikleri otomatik olarak birleştirebilir. Çakışmalar yalnızca her iki dal da aynı satırları değiştirdiğinde meydana gelir; bu da bir sonraki dersin konusudur.
Görev
Ortatop.txt (içerik: a) ve bottom.txt (içerik: b) dosyalarının bulunduğu yeni bir klasörde başlıyorsunuz.
Depoyu (repo) başlatın, ilk commit'i yapın ve ardından şunları uygulayın:
featureadında bir dal (branch) oluşturun vetop.txtdosyasınaaddedsatırını ekleyin; commit yapın.maindalına geri dönün vebottom.txtdosyasınaaddedsatırını ekleyin; commit yapın.featuredalınıMerge featuremesajıylamaindalına birleştirin (merge).
git rev-list --count HEAD komutunu kullanarak HEAD'den ulaşılabilen commit sayısını yazdırın. Beklenen sayı 4'tür (initial + feature + main + merge).
Kopya kağıdı
Her iki dal da birbirinden ayrıldığında, Git iki ebeveynli yeni bir birleştirme işlemesi (merge commit) oluşturarak üç yollu birleştirme (three-way merge) gerçekleştirir:
git switch main
git merge feature -m "Merge feature"-m bayrağı, bir düzenleyici açmadan birleştirme işlemesi mesajını ayarlar. Her iki dal da farklı satırları değiştirdiği sürece Git otomatik olarak birleştirme yapar.
Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Versiyon Kontrolü bölümündeki tüm dersler
4Değişiklikleri İnceleme
Git DiffHazırlanan Değişiklikleri KarşılaştırmaGit ShowÖzet - Dedektiflik Çalışması5Dosyaları Yoksayma
Dosyaları Neden YoksayarızGitignore DesenleriYoksayma Kurallarını Kontrol EtmeÖzet - Temiz Repo8Birleştirme
Merge Nedir?Fast-Forward MergeÜç Yönlü BirleştirmeMerge ÇatışmalarıÇatışma ÇözmeÖzet - Merge Ustası3Değişiklikleri İzleme
Hazırlık AlanıGit AddGit Commitİzlenen Bir Dosyayı DeğiştirmeGit LogÖzet - İlk Commit'ler6Yemek Tarifi Sitesi Projesi
Projeye Genel BakışBaşlatma ve Yoksayma