Git Log Komutu: Commit Geçmişini Görüntüleme ve Filtreleme Kılavuzu
Git deposundaki her değişiklik (commit), projenin tarihinde kaydedilir. git log komutu, bu geçmişi incelemenizi sağlayarak kimin, ne zaman ve neden değişiklik yaptığını gösterir. Bu, en sık kullanılan ve en esnek Git komutlarından biridir.
Bu makale, git log komutunu kullanarak commit geçmişini görüntüleme, filtreleme ve çıktı formatını özelleştirme yöntemlerini açıklamaktadır.
Temel Kullanım
Argümansız git log komutunu çalıştırmak, mevcut dalın (branch) en son commit'inden başlayarak tüm commit geçmişini gösterir:
git log
Çıktı, her commit için tam hash, yazar adı ve e-posta, tarih ve commit mesajını içerir. Log görünümünden çıkmak için q tuşuna basın.
İpucu: Varsayılan çıktı oldukça ayrıntılıdır. Hızlı bir bakış için
--onelinekullanmak genellikle daha iyidir.
Kompakt Çıktı: --oneline
Daha kısa bir özet için --oneline bayrağını kullanın. Bu, her commit için yalnızca kısaltılmış hash'i ve konu satırını gösterir:
git log --oneline
Bu, son yapılan işlerin hızlı bir genel bakışını sağlar.
Commit Sayısını Sınırlama
Yalnızca son N adet commit'i görmek için -n bayrağını kullanın:
git log -n 5
Veya boşluk bırakmadan kısaltılmış haliyle:
git log -5
Yazara Göre Filtreleme
Belirli bir kişinin commit'lerini listelemek için --author kullanılır. Bu, yazar adına veya e-posta adresine göre alt dize eşleşmesi yapar:
git log --author="Jane"
Birden fazla yazarı dahil etmek için bayrağı birden fazla kez kullanın:
git log --author="Jane" --author="John"
Tarihe Göre Filtreleme
Commit'leri bir tarih aralığı ile sınırlamak için --since ve --until seçeneklerini kullanın. Bu seçenekler göreceli tarihleri (örn. "2 weeks ago") veya kesin tarihleri kabul eder:
git log --since="2026-03-01" --until="2026-03-15"
Commit Mesajlarında Arama
Commit mesajında belirli bir anahtar kelime aramak için --grep kullanılır. Arama varsayılan olarak büyük/küçük harfe duyarlıdır. Duyarsız arama için -i ekleyin:
git log -i --grep="fix"
Değiştirilen Dosyaları Görüntüleme
Her commit'te hangi dosyaların değiştiğini görmek için --stat kullanın:
git log --stat
Her commit'teki tam farkı (diff) görmek için -p (veya --patch) kullanın:
git log -p -3
Belirli Bir Dosyanın Geçmişini Görüntüleme
Yalnızca belirli bir dosyayı etkileyen commit'leri görmek için dosya yolunu -- ayırıcısından sonra belirtin:
git log -- path/to/file.py
Dal ve Grafik Görünümü
Dalların nasıl ayrıldığını ve birleştiğini görselleştirmek için --graph kullanın. Tüm dalları görmek için --all ekleyin:
git log --oneline --graph --all
İki Dalı Karşılaştırma
Bir dalda olup diğerinde olmayan commit'leri görmek için .. notasyonunu kullanın:
git log main..feature-branch
Özel Çıktı Formatı
Çıktıyı tamamen özelleştirmek için --pretty=format: kullanılır. Örneğin, hash, yazar ve konuyu göstermek için:
git log --pretty=format:"%h %an %s"
Sıkça Sorulan Sorular (FAQ)
- Bir kod parçasını değiştiren commit nasıl bulunur?
git log -S "string"(pickaxe) kullanılır. git logilegit reflogarasındaki fark nedir?git logmevcut dalın geçmişini gösterirken,git reflogHEAD'in yaptığı her hareketi (reset, rebase dahil) kaydeder ve kayıp commit'leri kurtarmak için ana araçtır.
Özet Tablo
| Komut | Açıklama |
|---|---|
git log |
Tam commit geçmişi |
git log --oneline |
Commit başına tek satır |
git log -n 10 |
Son 10 commit |
git log --author="Name" |
Yazara göre filtrele |
git log --no-merges |
Merge commit'lerini hariç tut |
git log main..feature |
feature'da olup main'de olmayan commit'ler |



