Git Log Komutu: Commit Geçmişini Görüntüleme ve Filtreleme Kılavuzu

Git deposundaki commit geçmişini görüntülemek, filtrelemek ve formatlamak için kullanılan git log komutunun kapsamlı rehberi. Temel kullanımdan gelişmiş filtrelemeye kadar tüm detaylar.

L
Linuxize
19 görüntülenme
Git Log Komutu: Commit Geçmişini Görüntüleme ve Filtreleme Kılavuzu

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 --oneline kullanmak 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 log ile git reflog arasındaki fark nedir? git log mevcut dalın geçmişini gösterirken, git reflog HEAD'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

Kaynak

Linuxize