Log

Bir yerden sonra sürüm geçmişiniz oldukça uzun hale gelecek ve yaptığınız değişiklikleri liste halinde görmek isteyeceksiniz. Bu durumda git log komutu sahneye geliyor.

git log komutunun bir çok parametresi mevcut. Önce en basit haliyle çalıştıralım: (bu değişikliği yapmadan önce bir kaç güncelleme daha ekledim)


korayal@koray-mintlinux ~/merhaba-arda $ touch iluvatar.log
korayal@koray-mintlinux ~/merhaba-arda $ vim iluvatar.log 
korayal@koray-mintlinux ~/merhaba-arda $ git add .
korayal@koray-mintlinux ~/merhaba-arda $ git commit -m "iluvatar.log eklendi"
[master 8818b7b] iluvatar.log eklendi
 1 file changed, 1 insertion(+)
 create mode 100644 iluvatar.log
korayal@koray-mintlinux ~/merhaba-arda $ git log
commit 8818b7be594c7b9de86db47b4b0f9747cf9b4543
Author: Koray Al 
Date:   Mon Mar 25 10:14:28 2013 +0200

    iluvatar.log eklendi

commit 456b3806b2201f4277c6e59ab0c5f93f92c6de76
Author: Koray Al 
Date:   Fri Mar 22 11:35:46 2013 +0200

    Eru yaratıldı.

Burada özetle:
- bir adet iluvatar.log dosyası oluşturdum.
- İçeriğini düzenledim.
- Klasördeki tüm dosyaları, bir sonraki commit'te eklenmek üzere Stage adlı tampon bölgeye ekledim. (git add .)
- Bir mesaj ile birlikte commit ettim. (git commit -m)
- Commit geçmişimi listeledim. (git log)

Görüldüğü üzere, kayıtlarda her değişikliğin "hangi SHA1 etiketiyle", "kim tarafından", "ne zaman", "hangi açıklamayla" saklandığını görebiliyoruz.
Bu listeleme için farklı yöntemler de mevcut:

  • Kayıtlar değişiklikleri de içersin: (git log -p) [sonunda "-x" belirterek 'son x değişikliği' de görüntüleyebilirsiniz. (git log -p -x)]

korayal@koray-mintlinux ~/merhaba-arda $ git log -p -2
commit 8818b7be594c7b9de86db47b4b0f9747cf9b4543
Author: Koray Al 
Date:   Mon Mar 25 10:14:28 2013 +0200

    iluvatar.log eklendi

diff --git a/iluvatar.log b/iluvatar.log
new file mode 100644
index 0000000..1c79cb8
--- /dev/null
+++ b/iluvatar.log
@@ -0,0 +1 @@
+merhaba eru!

commit 456b3806b2201f4277c6e59ab0c5f93f92c6de76
Author: Koray Al 
Date:   Fri Mar 22 11:35:46 2013 +0200

    Eru yaratıldı.

diff --git a/eru.txt b/eru.txt
new file mode 100644
index 0000000..5de3a5d
--- /dev/null
+++ b/eru.txt
@@ -0,0 +1,2 @@
+Ainur sana selam eder
+elfler varken daha insanlar yok idi
  • İstatistiksel listeleme. git log --stat ile sadece kaç dosyda kaç değişiklik yapıldı listeyebilirsiniz:

korayal@koray-mintlinux ~/merhaba-arda $ git log --stat
commit 8818b7be594c7b9de86db47b4b0f9747cf9b4543
Author: Koray Al 
Date:   Mon Mar 25 10:14:28 2013 +0200

    iluvatar.log eklendi

 iluvatar.log |    1 +
 1 file changed, 1 insertion(+)

commit 456b3806b2201f4277c6e59ab0c5f93f92c6de76
Author: Koray Al 
Date:   Fri Mar 22 11:35:46 2013 +0200

    Eru yaratıldı.

 eru.txt |    2 ++
 1 file changed, 2 insertions(+)
  • --pretty parametresi ile daha güzel listelemeler yapabilirsiniz.

--pretty parametresiyle şu tip listelelemeler yapabilirsiniz:

Tek satır: git log --pretty=oneline


korayal@koray-mintlinux ~/merhaba-arda $ git log --pretty=oneline
8818b7be594c7b9de86db47b4b0f9747cf9b4543 iluvatar.log eklendi
456b3806b2201f4277c6e59ab0c5f93f92c6de76 Eru yaratıldı.

Özel format: git log --pretty=format:"%h - %an, %ar : %s"

format olarak seçebileceğiniz parametreler:


%H  Commit SHA1 hash etiketi
%h  Hash özeti
%T  Ağaç hashi
%t  Ağaç hash özeti
%P  Önceki commit hashi
%p  Önceki commitlerin hash özeti
%an Yazar adı
%ae Yazar e-posta adresi
%ad Yazar tarihi (--date= parametresinin yapısını kullanır)
%ar Yazar tarihi (bağıl)
%cn Değişiklik yapanın adı
%ce Değişiklik yapanın e-posta adresi
%cd Değişiklik tarihi
%cr Bağıl değişiklik tarihi
%s  Konu

korayal@koray-mintlinux ~/merhaba-arda $ git log --pretty=format:"%h - %an, %ar : %s"
8818b7b - Koray Al, 17 minutes ago : iluvatar.log eklendi
456b380 - Koray Al, 3 days ago : Eru yaratıldı.