Yazılar & Rehberler

Blog

Git İleri Seviye Komutlar ve İpuçları Rehberi

İpuçları & Rehberler BUZ Yazılım 15 Haziran 2026

Git, modern yazılım geliştirmenin vazgeçilmez aracıdır. Temel komutları bilmek yeterli gibi görünse de, karmaşık projelerde ileri seviye komutlar büyük zaman tasarrufu sağlar ve iş akışını önemli ölçüde iyileştirir. Bu rehberde, günlük iş akışınızı güçlendirecek ileri Git komutlarını inceliyoruz.

Git Rebase: Temiz Bir Geçmiş İçin

Rebase, commit geçmişini düzenlemenin en güçlü yollarından biridir:

Temel Rebase

git checkout feature-branch
git rebase main

Bu komut, feature dalınızdaki commitleri main dalının en güncel hâlinin üzerine yeniden uygular. Sonuç olarak doğrusal ve temiz bir geçmiş elde edersiniz.

İnteraktif Rebase

git rebase -i HEAD~5

Son 5 commit üzerinde düzenleme yapmanıza olanak tanır:

  • pick: Commit'i olduğu gibi bırak
  • squash: Önceki commit ile birleştir
  • reword: Commit mesajını değiştir
  • edit: Commit içeriğini düzenle
  • drop: Commit'i sil

Rebase, paylaşılmış dallarda dikkatli kullanılmalıdır. Yayımlanmış commitleri rebase etmek, ekip arkadaşlarınızın çalışmalarını bozabilir.

Git Cherry-Pick: Seçici Commit Taşıma

Belirli bir commit'i başka bir dala taşımak için cherry-pick kullanılır:

git checkout main
git cherry-pick abc1234

Yaygın Kullanım Senaryoları

  • Acil bir hata düzeltmesini yayın dalına taşıma
  • Yanlış dalda yapılan commit'i doğru dala alma
  • Belirli özellikleri seçerek farklı sürümlere dahil etme

Çakışma Durumunda

git cherry-pick --continue    # Çakışmayı çözdükten sonra
git cherry-pick --abort       # İşlemi iptal etmek için

Git Bisect: Hata Avında Yardımcınız

Bir hatanın hangi commit'te ortaya çıktığını bulmak için bisect, ikili arama algoritması kullanır:

git bisect start
git bisect bad                # Şu anki commit hatalı
git bisect good v2.0          # v2.0 etiketi çalışıyordu

Git, otomatik olarak ortadaki commitleri kontrol eder. Her adımda "good" veya "bad" diyerek hatayı yaratan commit'e ulaşırsınız.

Otomatik Bisect

git bisect start HEAD v2.0
git bisect run ./test-script.sh

Bir test betiği ile süreci tamamen otomatikleştirmeniz mümkün.

Git Stash: Geçici Depolama

Üzerinde çalıştığınız değişiklikleri geçici olarak saklamak için stash kullanılır:

Temel Kullanım

git stash                     # Değişiklikleri sakla
git stash pop                 # Son saklananı geri yükle ve listeden sil
git stash apply               # Son saklananı geri yükle ama listede tut

Gelişmiş Stash

  • İsimli stash: git stash push -m "WIP: login formu"
  • Belirli dosyaları saklama: git stash push -p
  • Stash listesi: git stash list
  • Belirli stash'i uygulama: git stash apply stash@{2}

Git Reflog: Kayıp Commitleri Kurtarma

Reflog, HEAD'in tüm hareketlerini kaydeder ve "kayıp" görünen commitleri kurtarmada hayat kurtarıcıdır:

git reflog

Kurtarma Senaryoları

  • Yanlışlıkla silinen dalı geri getirme
  • Hatalı bir reset sonrası eski duruma dönme
  • Kaybolan commitleri bulma
git checkout -b kurtarma-dali abc1234

Reflog varsayılan olarak 90 gün boyunca verileri saklar. Panik yapmadan önce reflog'u kontrol edin.

Bonus İpuçları

Git Worktree

Birden fazla dalda aynı anda çalışmak için:

git worktree add ../feature-branch feature-branch

Git Blame ile Kod Arkeolojisi

Bir satırın kim tarafından ne zaman değiştirildiğini görmek için:

git blame dosya.cs
git blame -L 10,20 dosya.cs   # Sadece 10-20. satırlar

Yararlı Git Alias'ları

git config --global alias.lg "log --oneline --graph --all"
git config --global alias.st "status -sb"
git config --global alias.co "checkout"

En İyi Uygulamalar

  1. Küçük ve anlamlı commitler yapın: Her commit tek bir mantıksal değişiklik içermeli
  2. Açıklayıcı commit mesajları yazın: "Fix bug" yerine "Kullanıcı girişinde null referans hatasını düzelt"
  3. Feature branch stratejisi kullanın: Her özellik veya düzeltme için ayrı dal
  4. Düzenli olarak rebase yapın: Feature dalınızı main ile güncel tutun
  5. Force push'tan kaçının: Paylaşılan dallarda asla --force kullanmayın

Sonuç

Git'in ileri seviye komutlarını öğrenmek, geliştirici verimliliğinizi önemli ölçüde artırır. BUZ Yazılım olarak, ekiplerimizde bu komutları aktif olarak kullanıyor ve müşterilerimize Git iş akışı danışmanlığı sunuyoruz. Sorularınız için bizimle iletişime geçebilirsiniz.

Projeniz için profesyonel destek mi arıyorsunuz?

Ücretsiz Teklif Alın