Özet - Merge ve rebase
- Git kursu
- Orta seviye
- Ders 12/82
- 5 dk
iki yaklaşımı birleştirerek doğru birleştirme stratejisi seçersin.
Merge ve rebase stratejileri özeti
Merge ve rebase stratejileri projenin tarihsel okunabilirliğini şekillendirir. git merge dallanma noktalarını koruyarak gerçeğe tam sadık bir ağaç sunarken, git rebase commit'leri yeniden oynatarak temiz ve doğrusal bir akış sağlar. Yerel özellik dallarında rebase ile temizlik yapmak, paylaşılan ana gövdeye ise merge ile katılmak modern iş akışlarının en yaygın tercihidir.
# Yerel dalda temizlik (rebase)
git rebase main
# Ana dala entegrasyon (merge)
git merge --no-ff ozellikAltın kuralı unutma: Başkalarıyla paylaşılan ortak dallarda asla rebase yapma.
Uygulama Rebase ve birleştirme akışını tamamla
ozellik dalını git rebase -q main ile rebase et, main dalına geç, git merge -q ozellik ile birleştir ve git log --format="%s" komutuyla geçmişi ekrana yazdır.
Başlangıç kodu
git init -q
git config user.name "Kaan"
git config user.email "kaan@example.com"
echo "temel" > app.py
git add app.py
git commit -qm "Ilk temel"
git checkout -qb ozellik
echo "eklenti" > eklenti.py
git add eklenti.py
git commit -qm "Ozellik hazirlandi"
git checkout -q main
echo "yama" > yama.txt
git add yama.txt
git commit -qm "Hata yamasi"
git checkout -q ozellik
# rebase yap, main'e gec, merge et ve commit basliklarini yazdirÖrnek çözüm
git init -q
git config user.name "Kaan"
git config user.email "kaan@example.com"
echo "temel" > app.py
git add app.py
git commit -qm "Ilk temel"
git checkout -qb ozellik
echo "eklenti" > eklenti.py
git add eklenti.py
git commit -qm "Ozellik hazirlandi"
git checkout -q main
echo "yama" > yama.txt
git add yama.txt
git commit -qm "Hata yamasi"
git checkout -q ozellik
git rebase -q main
git checkout -q main
git merge -q ozellik
git log --format="%s"Beklenen çıktı
Ozellik hazirlandi Hata yamasi Ilk temel
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir ekipte yerel dalı güncel tutmak ve ardından ana dala birleştirmek için en dengeli yaklaşım hangisidir?
- Ana dalda rebase yapıp yerel dalda merge kullanmak
- Tüm geçmişi silip her şeyi tek bir commit haline getirmek
- Yerel dalda rebase ile güncellenip ana dala merge ile katılmak Doğru cevap
- Uzak depodaki ortak dalları her gün rebase ile sıfırlamak
Açıklama: Yerel dalda rebase yapmak geçmişi temiz ve doğrusal tutar; ana dala merge ile birleştirmek ise özellik entegrasyonunu açıkça belgeler.
2 Çakışma çözümü sonrası rebase'i sürdür
git rebase ____
git rebase --continue
Açıklama: Çakışmalar çözüldükten sonra rebase sürecini kaldığı yerden devam ettirmek için --continue kullanılır.
3 Strateji eşleştirmesi
| Kavram | Anlamı |
|---|---|
Fast-forward |
Ayrışma yoksa dal ucunu ilerletir |
Rebase felsefesi |
Doğrusal ve sade geçmiş sunar |
Merge felsefesi |
Tüm dallanma anlarını eksiksiz korur |
İki ebeveyn |
Merge commit'lerin temel yapısıdır |