← Back to Blog
TEKNIK

Git ve Versiyon Kontrolü: Yazılımcıların Vazgeçilmez Aracı

F. Çağrı BilgehanFebruary 18, 20268 min read
Gitversiyon kontrolüGitHubyazılım geliştirmeDevOps

Git ve Versiyon Kontrolü: Yazılımcıların Vazgeçilmez Aracı

"Bu dosyayı dün değiştirmiştim, eski hali lazım ama kaydetmedim." — Bu cümleyi hiç kurduysanız, Git tam size göre. Git, kodunuzun her değişikliğini kaydeden ve istediğiniz zaman geri dönmenizi sağlayan bir versiyon kontrol sistemidir.

Git Nedir?

Git, Linus Torvalds (Linux'un yaratıcısı) tarafından 2005'te geliştirilen dağıtık versiyon kontrol sistemidir. Dünyada yazılım geliştiricilerin %96'sı Git kullanır.

Neden Git Kullanmalısınız?

1. Değişiklik Geçmişi

  • Her değişiklik kaydedilir (commit)
  • İstediğiniz zamana geri dönebilirsiniz
  • Kimin ne zaman ne değiştirdiğini görürsünüz

2. Ekip Çalışması

  • Birden fazla kişi aynı anda çalışabilir
  • Çakışmalar (conflicts) yönetilebilir
  • Code review süreçleri
  • Pull request ile kontrollü birleştirme

3. Paralel Geliştirme

  • Branch (dal) sistemiyle aynı anda farklı özellikler
  • Ana kodu bozmadan deneme yapma
  • Feature branch, hotfix branch

4. Yedekleme

  • Kod birden fazla yerde saklanır
  • Bilgisayar bozulsa bile kod güvende
  • GitHub/GitLab = bulut yedek

Temel Git Kavramları

Repository (Repo)

Projenizin Git ile takip edilen klasörü

Commit

Bir değişiklik kaydı — anlık fotoğraf gibi

Branch (Dal)

Ana koddan ayrılan bağımsız geliştirme hattı

Merge (Birleştirme)

Farklı branch'leri birleştirme

Remote (Uzak Sunucu)

GitHub, GitLab gibi bulut depoları

Temel Git Komutları

# Yeni repo başlat
git init

# Dosyaları stage'e ekle
git add .

# Değişiklikleri kaydet
git commit -m "Anlamlı commit mesajı"

# Uzak sunucu ekle
git remote add origin https://github.com/user/repo.git

# Kodu uzak sunucuya gönder
git push origin main

# Uzak sunucudan kodu çek
git pull origin main

# Yeni branch oluştur
git checkout -b feature/yeni-ozellik

# Branch'ler arası geçiş
git checkout main

# Branch birleştir
git merge feature/yeni-ozellik

# Durum kontrolü
git status

# Geçmişi görüntüle
git log --oneline

Git Branch Stratejileri

Git Flow

  • main — Üretim kodu
  • develop — Geliştirme kodu
  • feature/ — Yeni özellikler
  • hotfix/ — Acil düzeltmeler
  • release/ — Sürüm hazırlığı

GitHub Flow (Basit)

  • main — Her zaman deploy edilebilir
  • feature branches — Her özellik için ayrı branch
  • Pull Request — Review sonrası merge

İyi Commit Mesajı Nasıl Yazılır?

Kötü:

  • "fix" ❌
  • "update" ❌
  • "asdasd" ❌

İyi:

  • "feat: kullanıcı kayıt formuna e-posta doğrulama ekle" ✅
  • "fix: ödeme sayfasında çıkan 500 hatasını düzelt" ✅
  • "docs: API dokümantasyonunu güncelle" ✅

Conventional Commits:

  • feat: — Yeni özellik
  • fix: — Hata düzeltme
  • docs: — Dokümantasyon
  • style: — Kod formatı (işlevi değiştirmeyen)
  • refactor: — Yeniden yapılandırma
  • test: — Test ekleme/düzeltme
  • chore: — Bakım işleri

GitHub vs GitLab vs Bitbucket

| Özellik | GitHub | GitLab | Bitbucket | |---------|--------|--------|-----------| | Ücretsiz repo | Sınırsız | Sınırsız | 5 kullanıcıya kadar | | CI/CD | GitHub Actions | GitLab CI | Pipelines | | Wiki | Evet | Evet | Evet | | Topluluk | En büyük | Büyük | Orta | | Self-host | Enterprise | Ücretsiz | Data Center |

Sonuç

Git, modern yazılım geliştirmenin temel taşıdır. Solo projelerden büyük ekiplere, tek bir dosyadan binlerce dosyalık projelere kadar Git olmadan profesyonel yazılım geliştirmek neredeyse imkansız.

Git ve modern yazılım geliştirme pratiklerini öğrenmek isterseniz özel ders için benimle iletişime geçin: info@cagribilgehan.com. Projelerime göz atın: cagribilgehan.com

Related Posts

Acik Kaynak Yazilim Rehberi: Nedir, Nasil Katki Yapilir?

Acik kaynak yazilim nedir ve nasil katkida bulunulur?

CI/CD Nedir? Surekli Entegrasyon ve Dagitim Rehberi

CI/CD nedir ve nasil kurulur?