Branch, Git history içindeki bir geliştirme çizgisinin güncel uç commit'ini adlandıran referanstır. O branch üzerinde yeni bir commit oluşturduğunda referans yeni commit'e ilerler; branch dosyaların ayrı bir kopyası değildir.
İlk işGünlük ekipİşbirliği
Temsili kavram şemasıCON-007
Süreç şeması
Değişiklik hattı
Çalışma, ortak koddan kontrollü biçimde ayrılır.
01 · BranchAyrıl
Belirli bir değişiklik için ayrı çalışma hattı oluşturulur.
Başlangıç beklentisi
UygulaDevAtlas önerisi; evrensel sektör standardı değildir.
Tahmini okuma
6 dakika
Görsel anlatım · Git işbirliği
Branch, dosya kopyası değil; history üzerinde hareket eden bir referanstır.
Branch, Commit, current branch ve Pull Request arasındaki sınırları tek bir Git çizgisi üzerinde gör.
Sahne 01 / 05
Aynı repository, farklı çalışma çizgileri
Aynı repository içinde birden fazla iş, birbirine karışmadan ilerleyebilir.
Bir projede aynı gün içinde bir hata düzeltmesi, bir yeni özellik ve bir deneme birlikte gündemde olabilir. Bu işleri ayrı çalışma çizgilerinde tutarsan her işin kendi kayıt sırası olur ve biri diğerini yarıda bırakmaz.
Sık karıştırılan nokta
YanlışFarklı işler için projenin ayrı kopyalarını açmak gerekir.
Doğru okumaTek repository yeterlidir. Git aynı history üzerinde birden fazla çalışma çizgisini takip edebilir.
Temsili örnek: “Profil düzenleme özelliği” işi, aynı repository içindeki diğer işlerin yanında duruyor.
ÇıkarımAyrı iş, ayrı çalışma çizgisi. repository hâlâ tek.
Tek repository, üç farklı çalışma çizgisi
Git tarafı · tek repository
main çizgisi
c1proje iskeleti
c2giriş ekranı
c3profil sayfası
HEAD →maindefault branchdefault branchcurrent branch
hata düzeltmesi çizgisi↳c3 Commit’inden ayrıldı
f1giriş hatası düzeltildi
hotfix-girislocal branch
yeni özellik çizgisi↳c3 Commit’inden ayrıldı
p1profil formu başladı
profil-duzenlemelocal branch
deneme çizgisi↳c3 Commit’inden ayrıldı
d1yeni yerleşim denemesi
deneme-yerlesimlocal branch
Dört çizgi de aynı repository içindedir.
Her çizginin kendi uç Commit’i vardır.
Tek repository içinde main çizgisi üç Commit ile ilerler. Aynı noktadan ayrılan hata düzeltmesi, profil düzenleme ve yerleşim denemesi çizgileri kendi Commit’leri ile devam eder. Her çizginin kendi uç Commit’ini gösteren bir referansı vardır.
Sahne 02 / 05
Branch nedir?
Branch, bir Commit’e işaret eden hafif bir Git referansıdır.
Branch bir isimdir; o ismin gösterdiği Commit, ilgili geliştirme çizgisinin güncel ucudur. Referansın kendisi yalnızca bir işaretten oluşur, bu yüzden oluşturması hızlıdır ve dosyaları çoğaltmaz.
Sık karıştırılan nokta
YanlışBranch, dosyaların veya repository’nin fiziksel bir kopyasıdır.
Doğru okumaBranch bir kopya değildir. Yalnızca bir Commit’i gösteren referanstır; dosyalar tek çalışma alanında kalır.
Temsili örnek: İşe başlamadan önce hangi referansın hangi Commit’i gösterdiğine bakıyoruz.
ÇıkarımBranch = bir isim ve o ismin işaret ettiği Commit.
Referans, çizginin uç Commit’ini gösterir
Git tarafı · tek repository
main çizgisi
c1proje iskeleti
c2giriş ekranı
c3profil sayfası
HEAD →maindefault branchuç Commit’i gösterircurrent branch
Kayıtlar zincir olarak durur; referans yalnızca uca bağlıdır.
Branch bir klasör değildir.
Branch bir repository kopyası değildir.
Branch bir fork değildir.
main çizgisinde üç Commit sıralanır. main referansı en son Commit olan c3 düğümüne bağlıdır ve HEAD işareti main üzerindedir. Dosyaların kopyası yoktur; yalnızca bir işaret vardır.
Sahne 03 / 05
Branch oluşturmak, Branch’e geçmek değildir
Branch oluşturmak ile o Branch’e geçmek iki ayrı işlemdir.
Yeni bir Branch oluşturduğunda, o an bulunduğun Commit’i gösteren yeni bir referans eklenir. Bu tek başına çalışma alanını taşımaz: current branch değişmediği sürece hâlâ eski Branch üzerindesin.
Sık karıştırılan nokta
YanlışYeni bir Branch oluşturursam otomatik olarak o Branch’e geçmiş olurum.
Doğru okumaOluşturma yeni bir referans ekler; geçiş current branch’i değiştirir. Bazı komutlar ikisini birlikte yapar, bazıları yapmaz.
Temsili örnek: Başlangıç Branch’ini kontrol ediyoruz, profil-duzenleme referansını oluşturuyoruz, ardından ayrı bir adımda ona geçiyoruz.
Çıkarımİki referans aynı Commit’i gösterebilir; hangisinin current branch olduğu ayrı bir bilgidir.
Aynı Commit’i gösteren iki referans, tek current branch
Git tarafı · tek repository
main çizgisi
c1proje iskeleti
c2giriş ekranı
c3profil sayfası
HEAD →maindefault branchcurrent branch hâlâ buradacurrent branch
profil-duzenlemelocal brancholuşturuldu, henüz geçilmedi
Yeni referans buradan başlar; çizgiye henüz yeni Commit eklenmedi.
Oluşturmak: yeni referans eklenir.
Geçmek: current branch değişir.
Commit atmadan önce hangisinin current branch olduğunu kontrol et.
main ve profil-duzenleme referansları aynı Commit olan c3 düğümünü gösterir. HEAD işareti hâlâ main üzerindedir; yani yeni referans oluşturulmuş olsa da current branch değişmemiştir.
Sahne 04 / 05
Commit Branch’i ilerletir
current branch üzerinde yeni bir Commit oluştuğunda Branch’in ucu o Commit’e ilerler.
Commit, değişikliğin kaydıdır. Kayıt oluştuğunda current branch referansı yeni Commit’i göstermeye başlar. Diğer Branch’ler yerinde kalır, çünkü onların işaret ettiği Commit değişmemiştir.
Sık karıştırılan nokta
YanlışBranch ile Commit aynı şeydir.
Doğru okumaCommit, kaydın kendisidir. Branch, bu kayıtların oluşturduğu çizginin ucunu gösteren isimdir.
Temsili örnek: profil-duzenleme üzerine geçtik ve Commit’lerimizi orada üretiyoruz.
ÇıkarımCommit atmadan önce current branch’i kontrol et: Commit hangi Branch üzerindeysen onu ilerletir.
Yeni Commit, current branch’in ucunu taşır
Git tarafı · tek repository
main çizgisi
c1proje iskeleti
c2giriş ekranı
c3profil sayfası
maindefault branchdeğişmedi
main referansı yerinde kaldı.
profil düzenleme çizgisi↳c3 Commit’inden ayrıldı
p1form alanları eklendiyeni Commit
HEAD →profil-duzenlemelocal branchyeni Commit’e ilerledicurrent branch
p2doğrulama mesajlarıolası sonraki Commit
Referans, en son oluşan Commit’i gösterir.
Commit kayıttır, Branch o kaydı gösteren isimdir.
Bir sonraki Commit ucu yine bir adım taşır.
profil düzenleme çizgisi c3 Commit’inden sonra ayrılır ve yeni bir Commit olan p1 eklenir. profil-duzenleme referansı p1 düğümüne ilerler ve HEAD işareti bu referansta durur. main referansı ise c3 üzerinde kalır.
Sahne 05 / 05
Branch, Pull Request değildir
Branch Git’in geliştirme çizgisidir; Pull Request platformun işbirliği yüzeyidir.
local branch bilgisayarındaki referanstır. default branch, repository’nin ana çalışma çizgisidir. remote-tracking branch, remote ile son iletişimde orada ne görüldüğünü hatırlatan referanstır. local branch oluşturmak; remote’a göndermek ve Pull Request açmak birbirinden ayrı adımlardır.
Sık karıştırılan nokta
YanlışBranch oluşturmak Pull Request açar; origin/main ile local main her zaman aynı ref’tir.
Doğru okumaBranch oluşturmak yalnızca local bir referans ekler. Gönderme ayrı bir adımdır, Pull Request platform tarafında ayrı bir adımdır. origin/main son iletişimdeki durumu gösterir; local main’den geride veya ileride olabilir.
Temsili örnek: Branch’i remote’a gönderdik; Pull Request açmak bundan sonraki ayrı bir adım.
ÇıkarımBranch geliştirme çizgisidir, Commit bu çizgideki değişiklik kaydıdır, Pull Request ise değişiklikleri başka bir Branch’e önerme yüzeyidir.
Git tarafı ve platform tarafı ayrı katmanlardır
Git tarafı · tek repository
main çizgisi
c1proje iskeleti
c2giriş ekranı
origin/mainremote-tracking branchremote’ta son görülen durum
c3profil sayfası
maindefault branchlocal branch ve default branch
local main ile origin/main aynı Commit’i göstermek zorunda değildir.
profil düzenleme çizgisi↳c3 Commit’inden ayrıldı
p1form alanları eklendi
p2doğrulama mesajları
HEAD →profil-duzenlemelocal branchüzerinde çalıştığımız çizgicurrent branch
origin/profil-duzenlemeremote-tracking branchgönderme adımından sonra
Gönderildikten sonra remote tarafında da bir referans oluştu.
Bu yüzey Git’in içinde değil, platformun üzerinde durur.
Branch oluşturmak gönderme yapmaz.
Gönderme, Pull Request açmaz.
Ekipler farklı Branch düzenleri seçebilir; tek doğru yöntem yoktur.
Git tarafında main çizgisi c3 Commit’inde durur: local main c3 gösterir, origin/main ise c2 gösterir. profil düzenleme çizgisi p1 ve p2 Commit’leri ile ilerler; profil-duzenleme ve origin/profil-duzenleme referansları p2 gösterir. Platform tarafında ise Git’in dışında ayrı bir Pull Request yüzeyi bulunur.
Branch
Git’in geliştirme çizgisi. Çizginin güncel uç Commit’ini gösterir.
Commit
Bu çizgideki değişiklik kaydı. Oluştuğunda current branch’in ucunu ilerletir.
Pull Request
GitHub gibi bir platformun, değişiklikleri başka bir Branch’e önermek için sunduğu işbirliği yüzeyi.
Temsili görselBranch, dosya kopyası değil; belirli bir çalışma hattını gösteren hareketli bir referanstır.
i
Editoryal beta6 kaynak · Son güncelleme 20 Temmuz 2026
Belirli bir değişiklik hattını adlandırabilir, commitlerini o hat üzerinde ilerletebilir ve başka bir hatla ne zaman birleştirileceğini ayrıca kararlaştırabilirsin.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Burada iki ayrı işlem vardır: Yeni branch oluşturmak ve çalışma alanını o branch'e geçirmek. git branch <ad> varsayılan olarak yeni referansı oluşturur, fakat tek başına seni o branch'e geçirmez.
Gerçek hayat · Bölüm 02
Gerçek iş senaryosu
Temsili iş sahnesi
BranchEkip sinyali → karar → olası sonuç
İlk okuma
SCN-002'de sana verilen iş için ekibin belirlediği başlangıç branch'ini kontrol edersin. Bu noktadan yeni bir branch oluşturur, çalışma alanının o branch'e geçtiğini doğrular ve ilgili commitleri burada üretirsin.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Branch'i uzak repository'ye göndermek ve GitHub'da Pull Request açmak sonraki, ayrı adımlardır; yerel branch oluşturmak bunları otomatik olarak yapmaz.
Duyacağın bağlam · Bölüm 03
Ekipte bunu nasıl duyabilirsin?
“Ekip bunu hangi bağlamda söyler?
İlk okuma
Temsili ekip konuşması: “Değişikliği ayrı bir branch'te hazırla; commitlerini kontrol ettikten sonra Pull Request açarız.”
Beklenti seviyesi · Bölüm 04
Junior hangi seviyede bilmeli?
01TanıTemel02AçıklaTemel03UygulaHedef
Tanı: Current, default, local ve remote-tracking branch ifadelerini bağlam içinde ayırt eder.
Açıkla: Branch'in bir commit çizgisini adlandırdığını ve commitlerle ilerlediğini açıklar.
Uygula: Başlangıç branch'ini kontrol eder, yeni branch oluşturur, ona geçer ve commitin doğru branch'e yazıldığını doğrular.
Şimdilik bilmesi gerekmeyen: Refspec ayrıntıları, reflog kurtarma teknikleri ve organizasyon çapında branching strategy tasarımı.
İhtiyacın kökeni · Bölüm 05
Neden ortaya çıktı?
İhtiyaç→Branch→Ortak dil
İlk okuma
Bir repository'de aynı anda hata düzeltmesi, yeni özellik veya deneme gibi farklı değişiklikler yürüyebilir. Branch bu geliştirme çizgilerini adlandırır; hangi commitlerin hangi çizgiye ait olduğunu takip etmeyi sağlar.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Review ve onay ise Git'in branch davranışı değil, kullanılan işbirliği platformunun ve ekibin sürecinin parçasıdır.
Ekip etkisi · Bölüm 06
Şirketler neden kullanır?
BranchEkipSüreçRiskTeslimat
İlk okuma
Ekipler aynı repository'deki değişiklikleri ayrı çizgilerde izlemek için branch kullanabilir. GitHub kullanan bir ekip, bir branch'teki değişiklikleri daha sonra Pull Request ile hedef branch'e önerebilir.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Branch adı, ömrü ve birleştirme yöntemi ise Git'in zorunlu kıldığı evrensel kurallar değildir; repository ayarına ve ekip anlaşmasına göre değişir.
Karar alanı · Bölüm 07
Trade-off ve bağlam
KazançMaliyet
İlk okuma
Branch'ler farklı değişiklikleri ayırmayı kolaylaştırabilir; buna karşılık çok sayıda belirsiz isimli veya uzun süre açık kalan branch hangi çalışmanın güncel olduğunu takip etmeyi zorlaştırabilir.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Ne zaman branch açılacağı, nasıl adlandırılacağı ve ne zaman birleştirileceği ekibin çalışma biçimine bağlıdır. Git Flow veya trunk-based development gibi yaklaşımlardan biri her ekip için tek doğru strateji değildir.
Yanılgı radarı · Bölüm 08
Yaygın yanlış anlamalar
Terim≠tek doğru uygulama
Branch, repository'nin veya dosyaların fiziksel kopyası değildir.
Branch oluşturmak her zaman branch'e geçildiği anlamına gelmez.
origin/main üzerinde görülen ref ile yerel main aynı ref değildir.