🌿 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.