CodeBlanks Logo Icon CodeBlanks

Üç yönlü birleştirme

Üç yönlü birleştirme commit'ini öğrenirsin.

Üç yönlü birleştirme

İki dal ortak bir geçmişe sahipken her ikisinde de ayrı commit'ler oluşmuşsa Git üç yönlü birleştirme yapabilir. Git, ortak ata commit'i ile iki dalın son commit'lerini karşılaştırarak değişiklikleri bir araya getirir.

       B -- C  (main)
      /
A ---
      \
       D -- E  (feature)

Bu işlem sonucunda genellikle iki dalı birleştiren yeni bir merge commit oluşur.

Merge commit nasıl oluşur?

Üç yönlü birleştirme tamamlandığında Git, iki dalın geçmişini birbirine bağlayan bir merge commit oluşturur. Bu commit, normal bir commit'ten farklı olarak iki ebeveyn commit'e sahiptir.

       B -- C ---- M  (main)
      /          /
A ---          /
      \       /
       D -- E    (feature)

Buradaki M commit'i birleştirme sonucunu temsil eder ve her iki dalın geçmişini korur.

Uygulama Merge commit komutunu oluştur

main dalındayken feature dalını fast-forward yerine ayrı bir merge commit oluşturarak birleştir. Komutu mergeCommand değişkenine ata ve yazdır.

Başlangıç kodu

terminal
const mergeCommand = "";

// Birleştirme komutunu yazdır

Örnek çözüm

terminal
const mergeCommand = "git merge --no-ff feature";

console.log(mergeCommand);

Beklenen çıktı

git merge --no-ff feature

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Üç yönlü birleştirmede Git hangi üç commit'i değerlendirir?

  • İki dalın ilk commit'lerini ve en son commit'i
  • En eski üç commit'i
  • Ortak ata ve iki dalın son commit'lerini Doğru cevap
  • Yalnızca mevcut dalın son üç commit'ini

Açıklama: Üç yönlü birleştirme ortak ata commit'ini ve her iki dalın son commit'ini temel alır.

2 Merge commit seçeneği

Soru
git switch main
git merge ____
Cevap
git switch main
git merge --no-ff feature

Açıklama: --no-ff seçeneği, fast-forward mümkün olsa bile Git'in ayrı bir merge commit oluşturmasını sağlar.

3 Üç yönlü birleştirme parçaları

Kavram Anlamı
Ortak ata Dalların ortak geçmişi
İki dalın sonu Karşılaştırılan uç commit'ler
Merge commit İki ebeveynli commit
Üç yönlü işlem Üç commit'i karşılaştırır

Başlangıç bölümündeki tüm dersler