Git ile Verimli Sürüm Kontrolü: Günlük İş Akışı Rehberi
C
Git ile Verimli Sürüm Kontrolü: Günlük İş Akışı Rehberi
Çoğu geliştirici Git'i günde onlarca kez kullanır ama çoğu zaman yalnızca üç komutla: git add, git commit, git push. Oysa Git, doğru kullanıldığında sadece bir yedekleme aracı değil; cesaretle deney yapmanızı, hataları geri almanızı ve ekip içinde temiz bir tarih bırakmanızı sağlayan bir güvenlik ağıdır. Bu rehberde günlük çalışma akışınızı gerçekten hızlandıracak pratiklere odaklanıyoruz.
Her şey küçük ve anlamlı commit'lerle başlar
İyi bir commit, "tek bir mantıksal değişikliği" temsil eder. 400 satırlık dev bir commit yerine, birbirinden bağımsız işleri ayrı commit'lere bölmek; ileride bir hatayı izlemeyi, tek bir değişikliği geri almayı ve kod incelemesini kat kat kolaylaştırır.
Bir dosyanın yalnızca bazı satırlarını commit'lemek isterseniz -p (patch) bayrağı işinizi görür:
git add -p
Git size her değişiklik bloğunu tek tek sorar; y ile dahil eder, n ile atlarsınız. Böylece tek dosyada karışmış iki ayrı işi iki ayrı commit yapabilirsiniz.
Commit mesajında da basit bir kural büyük fark yaratır: özet satırı 50 karakteri geçmesin, emir kipinde yazılsın.
Kullanıcı girişinde boş şifre kontrolü ekle
Boş şifreyle gönderilen formlar 500 hatası veriyordu.
Artık sunucu tarafında doğrulama yapılıp 400 dönülüyor.
İlk satır "ne yaptığını", gövde ise "neden yaptığını" anlatır. Altı ay sonra bu mesajı okuyan kişi muhtemelen siz olacaksınız.
Dallanma: korkmadan deney yapmanın yolu
Git'in en güçlü yanı dallardır (branch). Yeni bir özelliğe başlarken main üzerinde çalışmak yerine ayrı bir dal açın:
git switch -c feature/yeni-ozellik
Burada istediğiniz kadar deneyebilir, bozabilir, baştan yazabilirsiniz; main her zaman çalışır durumda kalır. İş bittiğinde dalı ana koda birleştirirsiniz.

git switch ve git restore, eski git checkout'un karışıklığını gidermek için geldi: dal değiştirmek için switch, dosya geri almak için restore kullanın. Tek komutun iki işi yapması yerine niyetiniz koddan okunur hâle gelir.
Yarıda kalan işi kenara koymak: stash
Bir hata düzeltmesi için aniden başka bir dala geçmeniz gerektiğinde, yarım kalan değişiklikleri commit'lemek zorunda değilsiniz:
git stash push -m "yarım kalan form tasarımı"
git switch main
# acil işi hallet...
git switch feature/form
git stash pop
git stash list ile biriktirdiğiniz tüm zulaları görür, git stash pop ile en sonuncusunu geri alırsınız. Stash, "bir dakikalığına buraya koyayım" demenin temiz yoludur.
Geçmişi düzeltmek: rebase ve amend
Henüz paylaşmadığınız (push etmediğiniz) commit'leri düzeltmek tamamen güvenlidir. Son commit'e küçük bir ek yapmayı unuttuysanız:
git add unutulan-dosya.js
git commit --amend --no-edit
Birden fazla commit'i birleştirmek, sıralamak veya mesajlarını düzeltmek için etkileşimli rebase kullanılır:
git rebase -i HEAD~3
Açılan listede pick yerine squash yazarak commit'leri birleştirir, reword ile mesaj düzeltirsiniz. Böylece kod incelemesine "deneme 1", "yine olmadı", "tamam şimdi oldu" gibi commit'lerle değil; tertemiz bir tarihle gidersiniz.
Altın kural: Başkalarının da kullandığı (push edilmiş) bir dalın geçmişini rebase ile değiştirmeyin. Rebase, yalnızca yerelde, henüz paylaşılmamış commit'ler için güvenlidir.
Bir şeyi batırdığınızda: reflog hayat kurtarır
Yanlışlıkla bir dalı sildiniz, sert bir reset ile commit'leri uçurdunuz? Panik yapmayın. Git, HEAD'in nereye gittiğini bir süre kaydeder:
git reflog
Listede her hareketin bir referansı vardır (HEAD@{2} gibi). Kaybettiğiniz noktaya geri dönmek için:
git reset --hard HEAD@{2}
Reflog sayesinde "geri alınamaz" sandığınız çoğu işlem aslında geri alınabilir. Git'te bir şeyi tamamen kaybetmek düşündüğünüzden çok daha zordur.
Günlük akışı özetleyen pratik bir döngü
- Güncel kalın:
git pull --rebaseile uzaktaki değişiklikleri temiz şekilde alın. - Yeni iş için dal açın:
git switch -c feature/... - Küçük, anlamlı commit'ler atın:
git add -p+ iyi mesaj. - İşi bitirince geçmişi toparlayın: gerekiyorsa
rebase -i. - Gönderin ve birleştirme isteği (pull request) açın.
Sonuç
Git'i bir yedekleme kutusu değil, bir deney laboratuvarı olarak görmeye başladığınızda çalışma şekliniz değişir. Dallarla cesaretle deneyersiniz, stash ile akışınızı bölmeden iş değiştirirsiniz, rebase ile tertemiz bir tarih bırakırsınız ve reflog sayesinde hata yapmaktan korkmazsınız. Bu birkaç komutu günlük rutininize kattığınızda Git, en sessiz ama en güvenilir takım arkadaşınız hâline gelir.
Ek Görseller