İçeriğe geç
parazade

Merge Ne Demek?

Yayın: · Son güncelleme:

Merge Ne Demek? Kısaca

Merge, Git'te iki ayrı daldaki değişikliklerin tek bir dalda birleştirilmesidir. Genelde bir özellik dalında tamamlanan iş, merge ile ana dala alınır ve iki geçmiş tek hatta toplanır.

Merge nedir?
İçindekiler
  1. Merge ne demek?
  2. İki dal birleşince ne olur?
  3. Birleştirme öncesi kontrol listesi

Merge ne demek?

Merge, "birleştirmek" anlamına gelir. Git'te bir daldaki commit'leri başka bir dala aktarma işlemidir. En sık kullanım, özellik dalını main dalına almaktır.

Komut basittir: hedef dala geçip git merge ozellik-dali yazarsınız. Git iki dalın ortak noktasını bulur ve farkları birleştirir. Merge nedir diye soranlara en kısa cevap da budur: ayrı yürüyen iki işi tek hatta toplamak.

İki dal birleşince ne olur?

İki tür sonuç sık görülür. Ana dalda siz ayrıldıktan sonra hiç değişiklik olmadıysa Git yalnız işaretçiyi ileri kaydırır; buna fast-forward denir. İki dalda da yeni commit varsa Git, ikisini bağlayan ayrı bir merge commit oluşturur.

Örneğin siz iletisim-formu dalında çalışırken bir arkadaşınız ana dala yeni bir menü ekledi. Merge yaptığınızda hem menü hem form ana dalda yer alır. Aynı dosyanın aynı satırını ikiniz de değiştirdiyseniz Git karar veremez ve merge conflict çıkar.

Birleştirme öncesi kontrol listesi

Birleştirmeden önce hedef dalı güncelleyin, yani son değişiklikleri çekin. Bu, sürpriz çakışmaları azaltır.

Ekip projelerinde doğrudan merge yerine pull request açmak daha güvenlidir. Kod önce incelenir, testler çalışır, sonra birleştirilir. Merge sonrası projeyi bir kez çalıştırıp kontrol etmek de iyi bir alışkanlıktır.

Sıkça Sorulan Sorular

Merge ile rebase arasındaki fark nedir?

Merge iki geçmişi koruyarak birleştirir ve gerekirse ayrı bir birleştirme kaydı ekler. Rebase ise sizin commit'lerinizi hedef dalın ucuna taşıyarak düz bir geçmiş oluşturur.

Yapılmış bir merge geri alınabilir mi?

Evet. Henüz paylaşılmadıysa yerel olarak geri alınabilir. Uzak depoya gönderildiyse geçmişi bozmamak için genelde git revert ile tersine çeviren yeni bir commit oluşturulur.

İlgili terimler

BranchBranch (dal), Git'te ana koddan ayrılarak bağımsız çalışmayı sağlayan paralel bir geliştirme hattıdır. Yeni bir özellik ya da düzeltme önce ayrı bir dalda yapılır, hazır olunca ana dala birleştirilir.RebaseRebase, Git'te bir daldaki commit'leri alıp başka bir dalın en ucuna yeniden uygulamaktır. Sonuçta geçmiş, birleştirme kayıtları olmadan tek ve düz bir çizgi gibi görünür.Pull RequestPull request (PR), bir daldaki değişikliklerin ana dala alınması için açılan inceleme ve onay talebidir. Ekip kodu inceler, yorum yapar, testler çalışır ve onaydan sonra değişiklik birleştirilir.Merge ConflictMerge conflict, Git'in iki daldaki değişiklikleri kendiliğinden birleştiremediği durumdur. Genelde aynı dosyanın aynı satırı iki farklı dalda değiştirildiğinde çıkar ve hangi hâlin kalacağına sizin karar vermeniz gerekir.GitGit, dosyalardaki değişiklikleri kayıt altına alan, eski sürümlere dönmeyi ve ekiplerin aynı proje üzerinde paralel çalışmasını sağlayan ücretsiz ve açık kaynaklı dağıtık sürüm kontrol sistemidir. 2005'te Linus Torvalds tarafından geliştirilmiştir.CommitCommit, Git'te dosyalarda yaptığınız değişikliklerin bir açıklama mesajıyla birlikte depoya kalıcı olarak kaydedilmesidir. Her commit projenin o anki fotoğrafı gibidir ve sonradan geri dönülebilir.FAST(Instant Payment System)FAST (Fonların Anlık ve Sürekli Transferi), Türkiye Cumhuriyet Merkez Bankası'nın işlettiği, farklı bankalar ve ödeme kuruluşları arasında Türk lirası transferlerini 7/24 ve saniyeler içinde gerçekleştiren anlık ödeme sistemidir.