🌿 Branch & Switch: Oluştur, Yeniden Adlandır ve Rafa Kaldır

Branch & Switch: Oluştur, Yeniden: Branch, ana yoldan ayrılan güvenli bir servis yolu gibidir: ana yolda (main) trafik akmaya devam ederken sen kendi şeridinde kazı yapar, asfalt

Branch, ana yoldan ayrılan güvenli bir servis yolu gibidir: ana yolda (main) trafik akmaya devam ederken sen kendi şeridinde kazı yapar, asfaltı söker, denersin — ve işin bittiğinde şeridini ana yola geri bağlarsın. Peki madem değişikliği doğrudan main’de de yapabiliyorsun, neden ayrı bir branch açma zahmetine giresin? Çünkü main yalnızca senin değil, ekibin ve çoğu zaman CI/deploy hattının da üstünde durduğu yoldur; orada yarım kalmış bir kazı, senin işin bitene kadar herkesin ilerlemesini durdurur. Java’da bir sınıfı doğrudan `master` kopyanda değil, kendi kopyanda refactor edip sonra birleştirmen ne kadar doğalsa Git branch’i de odur — fark şu ki Git bu ayrımı dosya kopyalayarak değil, aynı geçmişin iki farklı ucunu işaret ederek yapar (bu yüzden branch açmak neredeyse bedavadır). QA açısından bunun bedeli nettir: test suite’ini doğrudan main’de düzenleyen bir ekipte, yarım kalan bir locator değişikliği gece regresyon koşumunu kırar ve sabah kimse "bu gerçek bir bug mı, yoksa yarım iş mi" sorusuna cevap veremez. İki kişi aynı satıra dokunduğunda çıkan conflict ise bir arıza değil, Git’in "burada iki farklı niyet var, kararı insan versin" demesidir.

1) Branch açma: main güvende kalır

Her branch komutunun ne değiştirdiğini gör: local branch listele, `hasan` oluştur, ona geç, adını değiştir, sonra upstream ile push et.

Branch listele ve geçmeden oluştur

Şimdi Git Temelleri sekmesindeki gerçek terminalde dene: yeni bir branch oluşturup üzerine geç (`git branch`, `git switch`/`git checkout`) — sandbox'taki "Yeni bir branch oluşturup üzerine geç" görevi tam bunu istiyor.

Tek adımda oluştur+geç, yeniden adlandır ve doğrula

Micro Lab: git branch

TODO satirini gercek `git switch -c` komutuyla degistir. Sandbox gercek bir repo calistirmiyor; amac dogru komut yapisini elinle kurmak.

Adim Adim: git branch

Mevcut branch'leri listele

`git branch` calistir: `* develop` satiri aktif branch'i gosterir.

`git switch -c bugfix/login-timeout` ile yeni branch'i olustur ve aninda uzerine gec.

`git branch -m bugfix/login-timeout-fix` SADECE aktif branch'in adini degistirir.

`git branch` tekrar calistir: artik `* bugfix/login-timeout-fix` gorursun.