Ana içeriğe atla

Git Merge Eğitimi: Örneklerle Kapsamlı Rehber

Bu adım adım eğitimle Git’te dalları verimli şekilde birleştirmeyi öğrenin. Farklı birleştirme stratejilerini keşfedin, çakışmaları çözün ve Git geçmişinizi temiz tutmak için en iyi uygulamaları uygulayın.
Güncel 3 Eki 2026  · 15 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Birden fazla geliştiricinin yer aldığı bir projede (ya da tek başınıza birden çok özelliği yönetirken) çalıştıysanız, dallanmanın işleri düzenli tutmak için vazgeçilmez olduğunu bilirsiniz. Ancak bir noktada bu dalların hepsinin tekrar bir araya gelmesi gerekir—işte git merge tam da burada devreye girer.

Bu eğitimde, farklı Git birleştirme türlerini, nasıl çalıştıklarını ve işler planlandığı gibi gitmediğinde birleştirme çakışmalarını nasıl çözeceğinizi anlatacağım. Son olarak, git merge'i etkili kullanmanıza ve yaygın hatalardan kaçınmanıza yardımcı olacak bazı en iyi uygulamaları paylaşacağım.

Git merge nedir?

Ekip ortamında, geliştiriciler genellikle farklı özellikler, hata düzeltmeleri ve iyileştirmeler üzerinde ayrı dallarda çalışırlar. Çalışmaları tamamlandığında bu değişiklikleri entegre etmek için git merge kullanırlar.

Birleştirme, bir dalın değişikliklerini diğerine, tam sürüm geçmişini koruyarak dahil eder. Her iki dalın commit geçmişini birleştirir.

Süreci bir örnek üzerinden anlayalım.

Ortak bir temel commit iki dala ayrılır, birleştirmeden önce ayrı main ve feature uçlarına yol açar. Görsel: Yazar.

Yukarıdaki görselde, feature ve main dalları, feature dalı oluşturulduğundan bu yana yeni commit’ler oluşturdu.

Bir feature dalı ve main dalı ortak bir temelden ayrılır ve daha sonra tek bir birleştirme commit’inde birleştirilir. Görsel: Yazar.

Git merge, her iki daldaki tüm yeni commit’leri ortak temellerinden itibaren alır ve tek bir birleştirme commit’inde toplar. Ardından, head işaretçisini bu yeni birleştirme commit’ini gösterecek şekilde günceller.

Temel git merge Komut Kullanımı

Birleştirme, sadece git merge çalıştırıp günü bitirmek değildir—önce her şeyi düzene sokmak için birkaç önemli adım vardır. Bu bölümde, dallarınızı hazırlamaktan başarılı bir birleştirmeyi tamamlamaya kadar tüm süreci adım adım ele alacağız.

Adım 1: Birleştirmeye hazırlanma

Yalnızca her iki daldaki commit’lenmiş değişiklikler birleştirilebilir. Bu nedenle, git status komutunu kullanarak commit’lenmemiş değişiklikleri kontrol edin ve birleştirmeden önce git commit komutuyla commit’leyin. 

Adım 2: Hedef dalı checkout etme

Git merge çalıştırmadan önce genellikle main olan hedef dala geçmelisiniz. Main dala geçin git checkout main veya git switch main kullanarak. 

Adım 3: Bir dalı birleştirme

Main dalının uzak depo ile güncel olduğundan emin olun. Bunun için git pull origin main çalıştırın.

Artık nihayet feature dalını main dalına birleştirmeye hazırsınız! Aşağıdaki gibi bir komut kullanabilirsiniz:

git merge feature-branch

Adım 4: Birleştirme çakışmalarını çözme (Varsa)

Git, birleştirmeler sırasında ortaya çıkabilecek çakışmaları otomatik olarak çözmeye çalışır. Ancak, kendi başına çözemediğinde manuel müdahale gerekebilir. 

Örneğin, aynı dosyadaki aynı satırlar farklı dallarda değiştirildiyse birleştirme çakışmaları oluşabilir. 

Git bir çakışma tespit ettiğinde birleştirmeyi duraklatır ve çözmenizi ister. Bu durumda:

  • Hangi dosyalarda çakışma olduğunu görmek için git status çalıştırın. 
  • Bu dosyaları açın.
  • Çakışan kod satırlarını gözden geçirin ve her iki dalda da tutarlılık sağlayacak şekilde güncelleyin.

Adım 5: Birleştirmeyi commit’leme

Çakışmaları çözdükten sonra, düzeltilen dosyaları aşamaya almak için git add . komutunu kullanın. Ardından, bir mesajla commit ederek birleştirmeyi tamamlayın: 

git merge -m “resolved conflicts”

İlerleyen bölümlerde, birleştirme çakışmalarının nasıl çözüleceğini daha ayrıntılı olarak göreceğiz.  

Başlayanlar için, dalları oluşturma, güncelleme, silme ve yönetmeye yönelik tüm temel komutları kapsayan tam bir Git cheat sheet burada. 

Zaten biraz Git deneyiminiz varsa ve önemli komutları tazelemeniz gerekiyorsa, en sık kullanılan Git komutlarına örneklerle yer veren bu eğitime göz atın.

Git’te Birleştirme Türleri

Git birleştirme türlerini anlamak, senaryonuza uygun stratejiyi seçmenize yardımcı olur. İşte birleştirmenin üç yaygın yaklaşımı. 

Hızlı iletme (fast-forward) birleştirmesi

Temel dalda, feature dalı oluşturulduğundan bu yana yeni commit yoksa, Git hızlı iletme yaklaşımını kullanır. 

Yeni feature dalınız güncellenirken main dalı değişmeden kalmışsa, birleştirme işlemi main’in head işaretçisini feature dalına taşır. 

Ek bir birleştirme commit’i oluşturulmaz; bu da commit geçmişini temiz ve doğrusal tutar.

Üç yönlü (three-way) birleştirme

Hem temel hem de feature dallarında yeni commit’ler varsa, Git ortak atayı bulur ve yeni bir birleştirme commit’i oluşturur. Bu commit, her iki dalın geçmişini birleştirir; feature dalının ve main dalının bireysel geçmişini korur.

Aşağıdaki örnekte, “E” ve “G” feature dalı oluşturulduktan sonra main dalına yapılan yeni commit’lerdir. 

      C---D---F (feature-branch)
     /         
A---B---E---G (main) 

Yeni bir birleştirme commit’i “M” oluşturulur ve hem main hem de feature dallarının geçmişi korunur. 

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

Squash birleştirme

Squash birleştirme, bir feature dalının tüm değişikliklerini tek bir commit’te toplar ve hedef dala birleştirir. Feature dalının bireysel commit geçmişini korumaz. 

git merge --squash feature_branch_name

Squash birleştirme, çok sayıda küçük commit’in yarattığı kalabalıktan kaçınırken yine de özelliğin nihai durumunu hedef dalda tutmak için özellikle faydalıdır.

Birden Fazla Dalı Birleştirme

Büyük projelerde çalışırken, birden fazla dalı—tek tek ya da aynı anda—birleştirmeniz gerekebilir. Seçeceğiniz yaklaşım, iş akışınıza ve değişikliklerin karmaşıklığına bağlıdır. Bu bölümde her iki yöntemi ve hangilerini ne zaman etkili şekilde kullanacağınızı inceleyeceğim.

Birden fazla dalı ardışık olarak birleştirme

Dalları teker teker birleştirmek için, her feature dalı için birleştirme komutunu ardışık olarak kullanın. 

Adım 1: Değişiklikleri birleştirmek istediğiniz hedef dala geçin.

git checkout target_branch_name

Adım 2: İlk feature dalını aşağıda gösterildiği gibi birleştirin.

git merge feature_branch_1

Adım 3: İkinci feature dalını gösterildiği gibi birleştirin.

git merge feature_branch_2

Tüm diğer dallar birleştirilene kadar bu işlemi tekrarlayın.

Birden fazla dalı paralel olarak birleştirme

Birden çok feature dalını aynı anda birleştirmek için şu adımları izleyin.

Adım 1: Değişiklikleri birleştirmek istediğiniz hedef dala geçin.

git checkout target_branch_name

Adım 2: Birden fazla feature dalıyla aşağıdaki komutu çalıştırın 

git merge feature_branch_1 feature_branch_2 feature_branch_3

Git birden fazla dalı paralel olarak birleştirirken çakışmalar oluşabilir. Böyle bir durumda Git sizden bunları manuel olarak çözmenizi ister.

Birden çok birleştirmede çakışmalarla başa çıkma

Birden çok dalı birleştirmek her zaman basit değildir—özellikle bir dal diğerine bağlıysa. 

Örneğin, feature_x'i main'e feature_y'den önce birleştirmek çakışmalara yol açabilir. Benzer şekilde, farklı dallar aynı dosyaları değiştiriyorsa, paralel birleştirmeler dikkatli çözüm gerektiren çakışmalara neden olabilir.

Şu aşamaları izleyerek birleştirme çakışmalarını çözün:

  • Adım 1: Hangi dosyaların çakışmaya neden olduğunu görmek için git status çalıştırın.
  • Adım 2: Çakışan dosyaları açın ve düzeltin.
  • Adım 3: Değişiklikleri aşamaya ekleyin ve commit’leyin.

Birleştirme commit geçmişini anlama 

Karmaşık çakışmalar için, git status'un sağladığından daha fazla bilgiye ihtiyaç duyabilirsiniz. Bu gibi durumlarda, geçmişi derinlemesine incelemek için git log veya git show gibi komutları kullanabilirsiniz.

  • git log: birleştirme commit’leri dahil tüm commit geçmişini gösterir. Bu, sorunun yaşandığı belirli bir birleştirmeyi belirlemenize yardımcı olur. 
  • git show: Yukarıdaki komuttan şüpheli bir birleştirme commit’i bulursanız, incelemek için git show kullanın. Bu komut, birleştirme sırasında nelerin değiştiğini gösteren ayrıntılı bir commit görünümü sunar. Ayrıca, belirli bir birleştirme gerçekleşmeden önceki üst dal için benzersiz bir tanımlayıcı da verir.
  • git diff: Önceki komutlardan üst ve birleştirilmiş dalların benzersiz tanımlayıcılarını alıp, bu iki durum arasındaki değişiklikleri karşılaştırmak için git diff kullanabilirsiniz.

Git Birleştirme En İyi Uygulamaları

Birleştirme bazen dağınık olabilir; özellikle de aynı kod tabanı üzerinde birden fazla geliştirici çalışıyorsa. 

Çakışmalar ortaya çıktığında nasıl çözüleceğini ele aldık; ancak en iyi yaklaşım, onları en baştan önlemektir. Bu bölümde, birleştirmelerinizi sorunsuz, Git geçmişinizi temiz tutmak için pratik ipuçlarını gözden geçireceğiz.

Dalları küçük ve odaklı tutun

Büyük dallar, çakışmaların artmasına yol açan örtüşen düzenleme riskini yükseltir. Bunu en aza indirmek için, dal başına tek bir özellik üzerinde çalışın ve dalları küçük ve odaklı tutun.

Sık sık pull ve merge yapın

En son değişiklikleri çekin ve birleştirmeden önce temel dalınızı güncel tutun. Main dalından feature dalınıza düzenli olarak güncellemeler çekerek senkron kalın. Bunlar, ileride oluşabilecek büyük ve karmaşık çakışmaları önler.

Git’in yerleşik birleştirme araçlarını kullanın

Dosyaları elle düzenlemek yerine, çakışmaları görsel bir arayüzde çözmek için Git’in yerleşik araçlarını kullanabilirsiniz. git mergetool çalıştırdığınızda üç seçenek açılır:

  • LOCAL - Main dalının sürümü. Bunu seçmek, çakışan dosyanın içeriğini main dalından tutar ve feature dalındaki değişiklikleri yok sayar. 
  • REMOTE - Feature dalının sürümü. Bunu seçmek, çakışan dosyaya feature dalının içeriğini uygular.
  • BASE - Her iki dalın çakışan dosyalarındaki değişiklikleri birleştirir. 

Sırayla birleştirin

Birden fazla dalı birleştirirken, özellikle bir özellik diğerine bağlıysa, sıra önemlidir. feature_x, feature_y'ye dayanıyorsa, feature_x'i önce birleştirmek çakışmalara yol açabilir. Bunu önlemek için, süreci sorunsuz tutmak ve çakışmaları en aza indirmek adına dalları her zaman bağımlılık sırasına göre birleştirin.

Squash birleştirme 

Daha önce bahsedildiği gibi, squash birleştirme bir feature dalındaki tüm commit’leri tek bir commit’te birleştirir, commit geçmişini temiz tutar ve olası birleştirme çakışmalarını azaltır.

Alternatif bir yaklaşım rebase’tir; feature dalındaki değişiklikleri doğrudan temel dalın üzerine uygular. Bu, doğrusal bir geçmiş oluşturur ve gereksiz birleştirme commit’lerini önler. Ancak her iki yöntem de geçmişi yeniden yazar ve feature dalının bireysel commit’lerini korumaz.

Sonuç

Bu Git merge eğitiminde, birleştirmenin temellerinden, çakışmalardan kaçınmaya yönelik en iyi uygulamalara kadar her şeyi ele aldık. git merge'i etkili biçimde kullanmayı anlamak, ekiplerin sorunsuz iş birliği yapmasına yardımcı olur; iş akışlarını akıcı, kod geçmişini temiz tutar.

Git becerilerinizi derinleştirmek istiyorsanız, daha gelişmiş iş akışları ve teknikleri öğrenmek için bu orta seviye Git kursuna göz atın!

SSS

Git merge ile git rebase arasındaki fark nedir?

Her iki komut da bir daldaki değişiklikleri diğerine entegre ederken, git merge her iki dalın geçmişini koruyan yeni bir birleştirme commit’i oluşturur. Buna karşılık, git rebase feature dalındaki commit’leri doğrudan hedef dalın üzerine uygular; bu, doğrusal bir commit geçmişi elde edilmesini sağlar ancak bu süreçte geçmişi yeniden yazar.

Git’te bir birleştirmeyi geri alabilir miyim?

Evet, eğer birleştirmeyi henüz push etmediyseniz şunu kullanabilirsiniz:

git reset --hard HEAD~1

Bu, dalınızı birleştirmeden önceki duruma sıfırlar. Birleştirme zaten push edildiyse, geçmişi korurken değişiklikleri güvenle geri almak için git revert kullanmanız gerekir.

Uzak bir dalı yerel dalıma nasıl birleştiririm?

Uzak bir dalı yerel dalınıza birleştirmek için şu adımları izleyin:

git fetch origin  

git checkout my-branch  

git merge origin/feature-branch 

Bu, uzak depodaki en güncel güncellemeleri birleştirdiğinizden emin olmanızı sağlar.

Gereksiz birleştirme çakışmalarını nasıl önleyebilirim?

Çakışmaları en aza indirmek için:

  • Yeni çalışmaya başlamadan önce düzenli olarak en son değişiklikleri çekin (git pull).
  • Birbirine bağlı birden fazla dal varsa, bağımlılık sırasına göre birleştirin.
  • Uzun ömürlü dallar yerine kodu kademeli entegre etmek için feature flag’leri kullanın.

Zaten birleştirilmiş bir dalı yeniden birleştirirsem ne olur?

Bir dal zaten birleştirilmişse, git merge feature-branch komutunu tekrar çalıştırmak hiçbir şeyi değiştirmez. Git, dalların ortak bir geçmişi paylaştığını fark eder ve her şeyin güncel olduğunu bildirir.

Birden fazla dalı aynı anda birleştirebilir miyim?

Hayır, Git tek bir komutla birden fazla dalı birleştirmeyi desteklemez. Bunları ardışık olarak birleştirmeniz gerekir:

git merge feature-branch-1  

git merge feature-branch-2  

Gerekirse, birden fazla dalı birleştireceğiniz bir entegrasyon dalı oluşturabilir ve ardından bunu main ile birleştirebilirsiniz.

git merge --no-ff mi yoksa git merge --ff mi kullanmalıyım?

  • --no-ff (fast-forward olmayan birleştirme) yeni bir birleştirme commit’i oluşturur, dal geçmişini izlemeyi kolaylaştırır.
  • --ff (fast-forward birleştirme) mümkünse değişiklikleri doğrudan uygular, ekstra commit’lerden kaçınır.

Özellik dallarının takibinin önemli olduğu projeler için --no-ff önerilir.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana, Bilgisayar Bilimleri alanında dört yıllık dereceye sahip serbest çalışan bir teknoloji yazarıdır. Veri bilimi, bulut bilişim, geliştirme, programlama, güvenlik ve daha birçok konuyu yazmak onun için doğal bir süreçtir. Klasik edebiyata ve yeni yerler keşfetmeye tutkuyla bağlıdır.

Konular
Git

Bu kurslarla Git hakkında daha fazlasını öğrenin!

Kurs

Orta Düzey Git

2 sa
44.5K
Git kullanarak işbirliğine dayalı yazılım ve veri projelerinde sürüm kontrolü için dalları ve uzak depoları keşfedin!
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör