Versiyon kontrol sisteminin avantajı değişiklikleri kaydetmesidir. Bu kayıtlar, taahhütler, hataları bulma, güncellemeler gibi verileri almamıza olanak tanır. Ancak, eğer içinde gezinemezsek, tüm bu geçmiş işe yaramaz olacaktır. Bu noktada git log komutuna ihtiyacımız var.
Git günlüğü, bir depoda olup biten her şeyin geçmişini incelemek ve okumak için kullanılan bir yardımcı araçtır. Geçmişi daha spesifik hale getirmek için git günlüğüyle birden fazla seçenek kullanılabilir.
Genel olarak git günlüğü, taahhütlerin bir kaydıdır. Git günlüğü aşağıdaki verileri içerir:
Git log Komutundan Nasıl Çıkılır?
Öyle bir durum olabilir ki git log komutunu çalıştırıyorsunuz ve orada takılıp kalıyorsunuz. Yazmak veya bash'a geri dönmek istiyorsunuz ama yapamazsınız. Tıkladığınızda Girmek tuşuna bastığınızda, bitiş bayrağına kadar sizi eski komuta yönlendirecektir.
Bu sorunun çözümü, basmak the q (Çıkış için Q) . Sizi durumdan çıkaracak ve sizi komut satırına geri döndürecektir. Artık komutlardan herhangi birini gerçekleştirebilirsiniz.
Temel Git günlüğü
Git log komutu git'in en yaygın komutlarından biridir. Git için en kullanışlı komuttur. Geçmişi her kontrol etmeniz gerektiğinde git log komutunu kullanmanız gerekir. Temel git log komutu, en son taahhütleri ve kafanın durumunu gösterecektir. Şu şekilde kullanacaktır:
$ git log
Yukarıdaki komut son taahhütleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki komut tüm son taahhütleri listeliyor. Her taahhüt, SHA algoritması tarafından oluşturulan bazı benzersiz sha-id'leri içerir. Ayrıca tarih, saat, yazar ve bazı ek ayrıntıları da içerir.
Komut satırında kaydırma, atlama, taşıma ve çıkma gibi bazı eylemleri gerçekleştirebiliriz. Komut satırında ilerlemek için k tuşuna, yukarıya gitmek için j tuşuna, aşağı gitmek için j tuşuna, tam sayfa aşağı kaydırmak için boşluk çubuğuna, bir sayfa yukarı kaydırmak için ve q tuşuna basarak komut satırından çıkın.
<Git Günlüğü Çevrimiçi
Oneline seçeneği, çıktıyı satır başına bir işlem olarak görüntülemek için kullanılır. Ayrıca çıktıyı, taahhüt SHA'sının ilk yedi karakteri ve taahhüt mesajı gibi kısaca gösterir.
Aşağıdaki şekilde kullanılacaktır:
$ git log --oneline
Yani genellikle --oneline bayrağının git log'un görüntülenmesine neden olduğunu söyleyebiliriz:
- satır başına bir taahhüt
- SHA'nın ilk yedi karakteri
- taahhüt mesajı
Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktıdan daha kesin olarak görebileceğimiz gibi her commit sadece tek satırda yedi haneli sha numarası ve commit mesajı ile verilmektedir.
Git Günlük İstatistikleri
Log komutu değiştirilen dosyaları görüntüler. Ayrıca güncellenen toplam kayıtların satır sayısını ve özet satırını da gösterir.
Genel olarak stat seçeneğinin görüntülenmesi için kullanıldığını söyleyebiliriz.
aritmetik mantık Birimi
- değiştirilmiş dosyalar,
- Eklenen veya kaldırılan satır sayısı
- Değiştirilen toplam kayıt sayısının özet satırı
- Eklenen veya kaldırılan satırlar.
Aşağıdaki şekilde kullanılacaktır:
$ git log --stat
Yukarıdaki komut değiştirilen dosyaları gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktıdan, listelenen tüm taahhütlerin depodaki değişiklikler olduğunu görebiliriz.
java sayacı
Git günlüğü P veya Patch
git log patch komutu, değiştirilen dosyaları görüntüler. Ayrıca eklenen, kaldırılan ve güncellenen satırların konumunu da gösterir.
Şu şekilde kullanılacaktır:
$ git log --patch
Veya
$ git log -p
Genel olarak --patch bayrağının aşağıdakileri görüntülemek için kullanıldığını söyleyebiliriz:
- Değiştirilen dosyalar
- Eklediğiniz veya kaldırdığınız satırların konumu
- Yapılan spesifik değişiklikler.
Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktı, değiştirilen dosyaları eklenen veya kaldırılan satırların konumuyla birlikte görüntülüyor.
Git Günlük Grafiği
Git log komutu, git günlüğünüzü grafik olarak görüntülemenizi sağlar. Taahhütleri grafik biçiminde listelemek için git log komutunu --graph seçeneğiyle çalıştırın. Aşağıdaki gibi çalışacaktır:
$ git log --graph
Çıktıyı daha spesifik hale getirmek için bu komutu --oneline seçeneğiyle birleştirebilirsiniz. Aşağıdaki şekilde çalışacaktır:
$ git log --graph --oneline
Taahhüt Geçmişini Filtreleme
Çıktıyı ihtiyaçlarımıza göre filtreleyebiliriz. Git'in benzersiz bir özelliği. Çıktılara miktar, tarih, yazar ve daha birçok filtre uygulayabiliyoruz. Her filtrenin kendine has özellikleri vardır. Çıkışta bazı gezinme işlemlerini uygulamak için kullanılabilirler.
Bu filtrelerin her birini ayrıntılı olarak anlayalım.
Tutara göre:
Git log komutunu kullanarak çıktı taahhütlerinin sayısını sınırlayabiliriz. En spesifik komuttur. Daha az taahhütle ilgileniyorsanız, bu komut karmaşıklığı ortadan kaldıracaktır.
- seçeneği de dahil olmak üzere git günlüğünün çıktısını sınırlamak için. Yalnızca son üç işlemi istiyorsak, git log komutunda -3 argümanını iletebiliriz. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktıdan da görebileceğimiz gibi git log çıktısını sınırlayabiliyoruz.
Tarih ve Saate Göre:
Çıktıyı tarih ve saate göre filtreleyebiliriz. geçmek zorundayız --sonrasında veya -önce tarihi belirtmek için argüman. Her iki argüman da çeşitli tarih formatlarını kabul eder. Aşağıdaki gibi çalışacaktır:
$ git log --after='yy-mm-dd'
Yukarıdaki komut, verilen tarihten sonra yapılan tüm taahhütleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki komut '2019-11-01'den sonraki tüm taahhütleri listeliyor.
Ayrıca 'dün', '1 hafta önce', '21 gün önce' ve daha fazlası gibi geçerli referans ifadelerini de iletebiliriz. Şu şekilde çalışacak:
git log --after='21 days ago'
Yukarıdaki komut 21 gün önce yapılan taahhütleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Ayrıca iki tarih arasındaki taahhütleri de takip edebiliriz. İki tarih arasında oluşturulan taahhütleri izlemek için bir bildirim referansı iletin --önce Ve --sonrasında tarih. Diyelim ki '2019-11-01' ve '2019-11-08' arasındaki taahhütleri takip etmek istiyoruz. Komutu şu şekilde çalıştıracağız:
$ git log --after='2019-11-01' --before='2019-11-08 '
Yukarıdaki komut tarihler arasında yapılan taahhütleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktı, verilen dönem arasındaki taahhütleri gösteriyor. --after ve --before yerine --since ve --until'i kullanabiliriz. Çünkü bunlar sırasıyla eş anlamlıdır.
Yazar tarafından:
Belirli bir kullanıcıya göre taahhütleri filtreleyebiliriz. Yalnızca belirli bir ekip üyesinin yaptığı taahhütleri listelemek istediğimizi varsayalım. Taahhütleri yazar adına göre filtrelemek için -author bayrağını kullanabiliriz. Bu komut normal bir ifade alır ve bu kalıpla eşleşen yazarların yaptığı taahhütlerin listesini döndürür. Desen yerine tam adı kullanabilirsiniz. Bu komut şu şekilde çalışacaktır:
$ git log --author='Author name'
Yukarıdaki komut, belirtilen yazar tarafından yapılan tüm taahhütleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktıdan, yazarın tüm taahhütlerinin olduğunu görebiliriz. Dwivedi1 listelendi.
Normal bir ifade veya tam ad yerine bir dize kullanabiliriz. Aşağıdaki ifadeyi göz önünde bulundurun:
$ git log --author='Stephen'
Yukarıdaki ifade, yazarı Stephen adını içeren tüm taahhütleri gösterecektir. Yazarın adının tam olarak eşleşmesi gerekmez; sadece belirtilen ifadeyi içeriyor.
Bildiğimiz gibi yazarın e-postası aynı zamanda yazarın adıyla da ilişkilidir, böylece yazarın e-postasını kalıp veya tam arama olarak kullanabiliriz. Diyelim ki e-posta hizmeti Google olan yazarların taahhütlerini takip etmek istiyoruz. Bunu yapmak için joker karakterleri '@gmail.com' olarak kullanabiliriz. Aşağıdaki ifadeyi göz önünde bulundurun:
$ git log -author='@gmail.com'
Yukarıdaki komut, modelde verildiği gibi yazarların taahhütlerini görüntüleyecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
java anahtarı int
Taahhüt mesajıyla:
Taahhütleri taahhüt mesajına göre filtrelemek için. grep seçeneğini kullanabiliriz ve bu, yazar seçeneği olarak çalışacaktır.
Aşağıdaki gibi çalışacaktır:
$ git log --grep=' Commit message.'
Tam bir mesaj yerine kısa taahhüt mesajı formunu kullanabiliriz. Aşağıdaki çıktıyı göz önünde bulundurun.
Yukarıdaki çıktı, taahhüt mesajında taahhüt kelimesini içeren tüm taahhütleri görüntülüyor.
Dosya adına, içeriğe ve daha fazlasına göre filtreleyebileceğimiz gibi birçok başka filtreleme seçeneği de mevcuttur.