Oldukça uzun bir aradan sonra tekrar merhaba. İş yoğunluğu, sağlık sorunları ve biraz da tembellik yüzünden çooook uzun süre seriye devam edemedim. Bunun için gerçekten çok özür dilerim. Umarım bir daha olmaz.

Bu yazımda Git log komutundan bahsedeceğim. Dosyalarımızı Git’e ekledik, commitimizi de aldık. Diyelim ki başka bir commite geri dönmemiz gerekti. Peki eski aldığımız commitleri ve onlara bıraktığımız notları nasıl göreceğiz ?

Log komutu yukarıda bahsettiğimiz sorunu çözmeye yarıyor. Yaptığı iş aldığımız commitleri listelemek ve commit detaylarını göstermek. Bu komutun birkaç tane de parametresi var. Aslında birçok parametresi var ama ben sadece kullanacağınızı düşündüklerimi veya sık kullandığım parametreleri anlatacağım. Zaten daha farklı bir şey yapsaydım bu yazı serisinin Git dökümantasyonundan herhangi bir farkı olmazdı. Buyrun incelemeye başlayalım.

Belirli Bir Kişinin Commitlerini Listelemek

Projelerinizde birden fazla kişi çalışıyorsa sadece kendi attığınız commitleri veya sadece ekibinizdeki belirli bir kişinin attığı commitleri görmek isteyebilirsiniz. Bunun için author parametresini kullanacağız. Git log author dedikten sonra commitlerini listelemek istediğimiz kişinin adını yazıyoruz.

Göstereceğim örnek kod çok sevgili arkadaşım Baran Somaklı’nın geliştirdiği ve benim de ufak tefek birkaç commit attığım bir projeden. Örnek olarak projede Baran’ın attığı commitleri bir listeletelim. Bunun için şu komutu veriyoruz:

Bu komutun çıktısı şu şekilde olacaktır.

Benim attığım commitleri görmek için de tek yapmam gereken kendi ismimi yazmak. Onun örneğini göstermeye gerek kalmadı zaten aynı şekilde sonuç verecek.

Log Komutunun Çıktısı Biraz Fazla Mı Çirkin Sanki ?

Log komutunun çıktısı bana son derece itici ve çirkin geliyor. Siz de benim gibi düşünüyorsanız pretty parametresini çok seveceksiniz. Pretty parametresinin alabileceği birkaç değer var. Çok detaylı bilgi isterseniz eğer git dökümantasyonunun ilgili sayfasını aşağıdaki linkten okuyabilirsiniz.

Ben sık kullanacağınızı düşündüğüm 2–3 değerden bahsedeyim.

Oneline sayesinde sadece commitimizin ID’sini ve commitin başlık satırını görüyorsunuz (başlık satırından daha önce hiç bahsetmedim, az sonra bahsedeceğim). Çıktısı oldukça güzel, ben severek kullanıyorum.

Short sayesinde de commit ID’miz ve commitin başlık satırının yanında bir de commitin kime ait olduğunu görüyorsunuz. Hemen altında da commitin başlık satırı bulunuyor. Hemen çıktısına bakalım.

Parametreye medium değerini verdiğiniz zaman short değerinden farklı olarak commit tarihini ve commit mesajının içeriğini de gösteriyor.

Nedir Bu Commit Mesajı ve Commit Başlığı ?

Commitlerimizin çok uzun görünmemesi ama içeriğinin detaylı olması için geliştirildiğini düşünüyorum. Önceki yazılardan hatırlarsanız eğer commit komutunu verirken -m parametresini kullanıyorduk. Orada size commit mesajı diye bahsettiğim şey aslında commit mesajımızın sadece başlığıydı. Bir commit komutuna birden fazla kez -m parametresini ekleyebilirsiniz. -m parametresini her ekleyişinizde commit mesajınıza bir adet boş satır eklenir. Commit mesajı başlığı dediğimiz kısım en üstteki satır, yani ilk eklediğimiz -m parametresidir. Bundan sonra eklediğiniz her -m parametresi commit mesajımızın içeriğini oluşturur. Aralarında birer boş satır bulunur. Örnek olarak şöyle bir commit alalım mesela.

Commitimizi aldıktan sonra az önce öğrendiğimiz pretty parametresine medium değerini verelim ve çıktısına bir bakalım.

Gördüğünüz gibi commit ID’si, commit sahibi ve commit tarihi yazıyor. Bunların altında da commit mesajımız yazıyor ve her -m parametremiz için bir tane boş satır bırakılmış.

Pretty parametresini burada bırakalım ve anlatacağım son parametre olan name-status’e bakalım.

Acaba Bu Committe Hangi Dosyalar Değişti ?

Bazen yapılan commitlere bakarken hangi dosyaların değiştiğini görmek isteyebiliriz. Bunun için log komutuyla birlikte name-status parametresini kullanıyoruz. Bu parametreyi kullandığımız zaman bütün commitler varsayılan haliyle listeleniyor ve altlarına da o committe değişikliğe uğramış dosyaların isimleri geliyor. Hemen kodumuza ve örneğimize bakalım.

Gördüğünüz gibi hangi committe hangi dosyalar değişmiş, her şeyi görebiliyoruz.

Eğer isterseniz bu parametreleri beraber de kullanabilirsiniz. Örneğin pretty ile name-status parametrelerini beraber kullanalım.

Çıktısına bakalım hemen.

Gördüğünüz gibi iki parametre de görevlerini düzgünce yerine getirdi. Bu şekilde parametreleri birbiri ardına yerleştirerek istediğiniz şekilde sonuçlar alabilirsiniz.

Yazıda anlaşılmayan, hatalı veya eksik yerler varsa lütfen bunları bana genel veya özel kanallardan bildirin. Okuduğunuz için çok teşekkür ederim. Eğer bir problem çıkmazsa serinin devamını da 1–2 gün içerisinde getirmeyi planlıyorum.

Web Developer @ Megafonn Creative Digital Agency. Blogger, Youtuber. (More information: zahidefe.net)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store