Teknoloji ipuçlarını kendin uygula
İçerik
Son yazılar
Biz kimiz
Yazılım Atölyesi, adım adım teknoloji rehberleriyle kendi başına öğrenip uygulama yapmak isteyenlere yardımcı olur. Pratik ipuçları, araç önerileri ve çözümler bulacaksınız.

Git Workflow Pratik Rehberi

# Git Workflow Pratik Rehberi

Tek başına çalışırken git bir yedekleme aracı gibi görünür. Takıma girdiğin an işler değişir. Aynı dosyaya üç kişi dokunur, merge sırasında çatışma çıkar, kim ne zaman ne yaptı belli olmaz. Çözüm daha fazla komut bilmek değil; ortak bir düzen kurmak.

Bu rehber, kendi projende hemen uygulayabileceğin bir git branching stratejisi ve günlük akış öneriyor. Komutları terminalde dene, sadece okuyup geçme.

Ön koşul: temel git komutlarını (add, commit, push, pull) biliyorsan yeterli. Terminalde rahat değilsen Linux terminali başlangıç rehberine bir göz atmak işini kolaylaştırır.
## Branch Yapısını Kurmak

Her şey branch isimlendirmesiyle başlar. Düzensiz branch isimleri, iki hafta sonra kimsenin çözemediği bir karmaşaya dönüşür.

### Kalıcı ve geçici branch'leri ayır

İki tür branch vardır. Kalıcı olanlar silinmez, geçici olanlar iş bitince silinir.

İsimlendirme kuralı: tip/kisa-aciklama. Türkçe karakter, boşluk ve büyük harf kullanma.

İyiKötü
feature/kullanici-profiliyeniOzellik
fix/login-500-hatasiduzeltme2
hotfix/odeme-timeoutacil
### Branch ömrünü kısa tut

Çatışmaların birinci nedeni uzun yaşayan branch'lerdir. Branch'in main'den uzaklaştığı süre ne kadar artarsa, birleştirme o kadar acı verir.

  1. Bir branch en fazla 1-3 günlük iş içersin.
  2. İş büyükse parçala. "Kullanıcı yönetimi" yerine "kullanıcı listesi", "kullanıcı düzenleme" diye ayır.
  3. Her sabah main'deki değişiklikleri kendi branch'ine al: git fetch origin sonra git rebase origin/main.
  4. Rebase seni korkutuyorsa git merge origin/main kullan. Önemli olan güncel kalmak.
### main'i koru

Kural yazmak yetmez, teknik olarak engelle. Depo ayarlarından main branch'ini korumaya al:

Bu ayarlar tek kişilik projede bile faydalı. Kendini yanlışlıkla vurmaktan korur. GitHub üzerinde ekip çalışması yapıyorsan kolaborasyon ipuçları yazısındaki review alışkanlıkları bunun üstüne oturur.

## Günlük Akış ve Çatışma Yönetimi

Strateji kurulduktan sonra iş, tekrar eden bir ritme dönüşür. Ritmi bir kez ezberle, sonra düşünmeden uygula.

### Bir işin baştan sona akışı
  1. Güncelle: git checkout main ve git pull.
  2. Branch aç: git checkout -b feature/arama-filtresi.
  3. Küçük commit'ler at: her commit tek bir mantıklı değişiklik olsun.
  4. Mesajı anlamlı yaz: "arama filtresine tarih aralığı eklendi" gibi. "düzeltme", "asdf" gibi mesajlar geleceğini karartır.
  5. Push et: git push -u origin feature/arama-filtresi.
  6. Pull request aç: ne yaptığını 3-4 satırda anlat.
  7. Merge sonrası temizle: yerel ve uzak branch'i sil.

Commit mesajlarında ortak bir önek kullanmak arama yaparken çok işe yarar: feat:, fix:, docs:, refactor:.

### Çatışma çıkınca ne yapmalı

Çatışma bir hata değil, iki kişinin aynı satıra dokunduğunun bildirimidir. Panik yapma, sırayla ilerle.

  1. git status ile çatışan dosyaları listele.
  2. Dosyayı aç. <<<<<<<, =======, >>>>>>> işaretlerini bul.
  3. Üst blok senin tarafın, alt blok gelen taraf. İkisini de oku.
  4. Doğru kodu elle yaz. İşaretleri tamamen sil.
  5. Şüpheye düşersen kodu yazan kişiye sor. Tahmin ederek silmek en pahalı hatadır.
  6. git add dosya ve ardından git rebase --continue ya da git commit.

Çözüm sırasında editörünün merge aracı hayatını kolaylaştırır. VS Code'un çatışma paneli üç blok halinde karşılaştırma sunar; hızlandırma tricksleri yazısındaki kısayollar burada da işe yarar.

### Çatışmayı baştan azaltmak

Kurtarma komutları