---
title: 'Tarihçeyi Okuma'
source: 'https://academia.sh/tr/kurslar/surum-kontrolune-giris/tarihceyi-okuma'
course: 'Sürüm Kontrolüne Giriş'
language: tr
updated: '2026-08-17T18:10:47+00:00'
license: 'CC BY-SA 4.0'
---

# Tarihçeyi Okuma

Günlük çıktısının biçimlendirilmesi; yol, içerik, yazar ve zamana göre süzme; aralık gösterimi ve işleme çizgesinin doğrudan okunması.

Tarihçe beş işlemeye ulaştı. `git log --oneline` bu beş satırı listelemeye yetiyor; ancak
tarihçe büyüdükçe soru değişir. "Son beş işleme neydi" yerine "bu dosyaya kim dokundu", "bu
satır ne zaman eklendi", "iki sürüm arasında ne oldu" sorulur. Bu ders o soruları yanıtlayan
süzme ve biçimlendirme araçlarını ele alır.

## Varsayılan Biçim

```bash
git log -1
```

```
commit 60e13bdaf4dd2f895e9b562c4a8ee9ea289d2af7
Author: Deniz Kaya <deniz@ornek.test>
Date:   Tue Mar 5 14:20:00 2024 +0300

    Aramayı büyük/küçük harften bağımsız yap

    Terimler listede küçük harfle tutuluyor. Kullanıcı "Yığıt" yazdığında
    arama boş dönüyor, terim listede olduğu hâlde bulunamıyordu.

    grep çağrısına -i seçeneği eklendi; bu seçenek POSIX'te tanımlıdır ve
    ek bağımlılık getirmez.
```

Varsayılan biçim kimliği tam uzunlukta, yazarı ve tarihi ayrı satırlarda, mesajın tamamını
girintili verir. `-1` seçeneği çıktıyı tek işlemeyle sınırlar; `-n` ile herhangi bir sayı
verilebilir.

Çıktıda görünen kimlik, tarih ve yazar alanları depoya özeldir. Aynı komutları kendi
deponuzda çalıştırdığınızda kimlikler ve tarihler farklı olacaktır; sabit olan çıktının
yapısıdır.

## Özet Biçimler

```bash
git log --oneline
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
43370ca Üç veri yapısı terimi ekle
3132c78 Biçim örneğindeki yazımı düzelt
546c174 Terim arama betiği ekle
13d31bf Terim listesini ve biçim belgesini ekle
```

Kısaltılmış kimlik, kimliğin benzersizliği korunacak kadar uzun tutulur; depo büyüdükçe
uzunluk artabilir. Kısa kimlik, komutlarda tam kimliğin yerine kullanılabilir.

`--graph` seçeneği tarihçenin çizge yapısını sol kenarda çizer:

```bash
git log --oneline --graph
```

```
* 60e13bd Aramayı büyük/küçük harften bağımsız yap
* 43370ca Üç veri yapısı terimi ekle
* 3132c78 Biçim örneğindeki yazımı düzelt
* 546c174 Terim arama betiği ekle
* 13d31bf Terim listesini ve biçim belgesini ekle
```

Bu tarihçede dallanma bulunmadığından çizim tek sütundur. Dallanma varsa sütunlar çoğalır ve
birleşme noktaları görünür hâle gelir; Dallanma ve İşbirliği kursunda bu çıktı okunacaktır.

## Biçimlendirme Dizgileri

Çıktının alanları tek tek seçilebilir:

```bash
git log --pretty=format:'%h %ad %s' --date=short
```

```
60e13bd 2024-03-05 Aramayı büyük/küçük harften bağımsız yap
43370ca 2024-03-05 Üç veri yapısı terimi ekle
3132c78 2024-03-04 Biçim örneğindeki yazımı düzelt
546c174 2024-03-04 Terim arama betiği ekle
13d31bf 2024-03-04 Terim listesini ve biçim belgesini ekle
```

Sık kullanılan alanlar:

| Dizge | Karşılığı |
|---|---|
| `%H` / `%h` | İşleme kimliği / kısaltılmışı |
| `%T` | Ağaç nesnesinin kimliği |
| `%P` | Öncül işlemelerin kimlikleri |
| `%an` / `%ae` | Yazarın adı / e-postası |
| `%ad` / `%cd` | Yazar tarihi / işleyen tarihi |
| `%s` / `%b` | Konu satırı / gövde |

`--date` seçeneği tarih biçimini belirler: `short` yalnızca günü, `iso` tam zaman damgasını
ve saat dilimini verir.

## Değişiklik İstatistiği

```bash
git log --oneline --stat
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
 ara.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
43370ca Üç veri yapısı terimi ekle
 terimler.txt | 3 +++
 1 file changed, 3 insertions(+)
3132c78 Biçim örneğindeki yazımı düzelt
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
546c174 Terim arama betiği ekle
 ara.sh | 9 +++++++++
 1 file changed, 9 insertions(+)
13d31bf Terim listesini ve biçim belgesini ekle
 README.md    | 9 +++++++++
 terimler.txt | 3 +++
 2 files changed, 12 insertions(+)
```

Her işlemenin altında dokunduğu dosyalar ve eklenen/silinen satır sayıları listelenir. Bir
işlemenin `--stat` çıktısı uzunsa, o işleme büyük olasılıkla birden çok işi birleştirmiştir:
istatistik, atomik işleme alışkanlığının denetim aracıdır.

## Yol Süzmesi

Belirli bir dosyaya dokunan işlemeler:

```bash
git log --oneline -- ara.sh
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
546c174 Terim arama betiği ekle
```

İki tireden oluşan ayırıcı, kendisinden sonrasının yol olduğunu bildirir. Ayırıcı olmazsa
`ara.sh` bir başvuru adı olarak yorumlanmaya çalışılır; aynı adı taşıyan bir dal ve bir dosya
bulunduğunda komut belirsizleşir. Ayırıcıyı her zaman yazmak bu belirsizliği ortadan kaldırır.

## İçerik Süzmesi

Bir metnin tarihçeye ne zaman girdiğini ya da ne zaman çıktığını bulmak için:

```bash
git log --oneline -S 'grep -i'
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
```

`-S` seçeneği, verilen dizginin **geçiş sayısını değiştiren** işlemeleri bulur. Yani dizgiyi
içeren işlemeleri değil, dizgiyi ekleyen ya da silen işlemeleri döndürür. Bir davranışın
kaynağını ararken en dolaysız araçtır: aranan şey satırın kendisi değil, satırın doğduğu andır.

## Yazar ve Zaman Süzmesi

```bash
git log --oneline --since="2024-03-05 00:00"
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
43370ca Üç veri yapısı terimi ekle
```

`--since` verilen andan sonrasını, `--until` öncesini seçer. Tarihe saat de eklendiğinde sınır
kesinleşir; yalnızca gün verilen kısa yazımlar farklı yorumlanabilir.

Katkı dağılımı için ayrı bir komut vardır:

```bash
git shortlog -sn HEAD
```

```
     5	Deniz Kaya
```

`-s` yalnızca sayıyı, `-n` sayıya göre azalan sıralamayı ister. Komut bir başvuru verilmediğinde
girdisini standart girdiden okur; bu nedenle betiklerde `HEAD` açıkça yazılmalıdır.

## Aralık Gösterimi

İki nokta, bir işleme kümesini tanımlar. `A..B`, "B'den erişilebilen ama A'dan erişilemeyen
işlemeler" anlamına gelir:

```bash
git log --oneline HEAD~2..HEAD
```

```
60e13bd Aramayı büyük/küçük harften bağımsız yap
43370ca Üç veri yapısı terimi ekle
```

`HEAD~2` gösterimi "iki öncül geriye" demektir. Tanım çizge üzerinden verilmiştir: erişilebilirlik,
öncül kenarları izleyerek gidilebilen düğümler kümesidir. Bu nedenle aralık gösterimi
dallanmış tarihçelerde de anlamlıdır; iki dalın ayrıştığı noktadan sonrasını sormak aynı
gösterimle yapılır.

## Tek Bir İşlemeyi Görmek

```bash
git show --stat 43370ca
```

```
commit 43370ca23c4b30992ea9857c6282416de8e0a816
Author: Deniz Kaya <deniz@ornek.test>
Date:   Tue Mar 5 09:05:00 2024 +0300

    Üç veri yapısı terimi ekle

    Ağaç, karma tablosu ve bağlı liste terimleri listede yoktu; bu terimler
    sorulduğunda arama betiği boş çıktı veriyordu.

    Karşılıklar Veri Yapıları kursunun sözlüğüyle aynı biçimde yazıldı.

 terimler.txt | 3 +++
 1 file changed, 3 insertions(+)
```

`git show` bir nesneyi türüne uygun biçimde gösterir: işleme için üstveri ve fark, ağaç için
girdi listesi, blob için ham içerik.

## Çizgeyi Doğrudan Okumak

Biçimlendirme dizgileri, tarihçenin çizge yapısını çıplak hâlde vermeye de yarar:

```bash
git log --format='%h %T %P'
```

```
60e13bd d23f16ee3533d05e3afd189a11551b6ec89f0898 43370ca23c4b30992ea9857c6282416de8e0a816
43370ca 8074917cfe2b0200648feaeeaf612170157dcc95 3132c7841e3e63c5eb968e37b301aa64dd1e8fb0
3132c78 01426328c4d751777bad684a17c7bc7941589603 546c174a007fdea08f907bd4d428cc87ce7e6148
546c174 21f7408f587a9837da6ae2ba960c74b756c79858 13d31bf17fdc8a5292b7fff288de94088d5c1440
13d31bf 378e434005c6c42021d4398a15e89149b0fd8671
```

Her satır bir düğümü, üçüncü sütun o düğümün kenarını verir. Son satırda üçüncü sütun boştur:
kök işlemenin öncülü yoktur. Birinci sütundaki değerler ikinci satırdan itibaren üçüncü
sütunda yeniden görünür; liste, çizgenin kenar listesi gösterimidir. Veri Yapıları kursunda
tanımlanan üç çizge gösteriminden biri burada doğrudan karşımıza çıkmaktadır.

## Özet

- Varsayılan günlük biçimi kimliği, yazarı, tarihi ve mesajın tamamını verir; `--oneline`
  bunları tek satıra indirir.
- `--pretty=format:` ile alanlar tek tek seçilir; `%H`, `%T`, `%P` işleme, ağaç ve öncül
  kimliklerini verir.
- `--stat` işleme başına dokunulan dosyaları ve satır sayılarını gösterir.
- Yol süzmesi iki tireli ayırıcıyla, içerik süzmesi `-S` ile yapılır; `-S` bir dizginin geçiş
  sayısını değiştiren işlemeleri bulur.
- `A..B` gösterimi, B'den erişilebilen ama A'dan erişilemeyen işlemeleri tanımlar.

## Sonraki Adım

Günlük, hangi işlemenin hangi dosyaya dokunduğunu söylüyor ama değişikliğin içeriğini
göstermiyor. Üstelik henüz işlenmemiş değişiklikler günlükte hiç görünmez. Sonraki ders üç
bölge arasındaki farkları — çalışma dizini ile hazırlık alanı, hazırlık alanı ile son işleme,
iki işleme arası — ayrı ayrı almayı ve fark çıktısının biçimini okumayı ele alacak.
