Üç yönlü birleştirme
- Git kursu
- Başlangıç
- Ders 59/80
- 4 dk
Üç 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
const mergeCommand = "";
// Birleştirme komutunu yazdırÖrnek çözüm
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
git switch main
git merge ____
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 |