Git Log ile Bir Projenin Geçmişi Nasıl İncelenir

Git Log ile Bir Projenin Geçmişi Nasıl İncelenir

Git'in sunduğu en temel hizmetlerden biri proje geçmişidir. Git, bir depoda yapılan tüm değişiklikleri takip ettiğinden, çok güçlü günlüğe kaydetme özellikleri sunabilir. Bir projenin geçmişini birçok farklı şekilde sorgulayabilir ve tek bir esnek komut kullanarak çeşitli verileri çıkarabilir ve görüntüleyebilirsiniz.





NS git günlüğü komut çok büyüktür, herhangi bir normal Git komutunun en büyüğüdür. Kılavuzu 2500 satırdan fazladır. Neyse ki, git günlüğü en yararlı davranışının çoğunu yalnızca birkaç anahtar seçenekten sağlar.





Varsayılan Davranışla Temel Günlük Kaydı

Varsayılan olarak, git günlüğü ters kronolojik bir taahhüt listesi gösterir. Her taahhüt, hash, yazar, tarih ve taahhüt mesajını içerir:





Komut, sonuçlarda kolayca gezinebilmeniz için tam çıktıyı göstermek için bir çağrı cihazı (örneğin daha az, daha fazla) kullanır. Git'i, çoğu çağrı cihazı gibi seçtiğiniz bir programı kullanacak şekilde yapılandırabilirsiniz.

İşte bazı git log çıktıları git kaynak kodunun deposu kendisi:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Sonuç, taahhüt karmasıyla başlar ( 670 ...) ardından şu anda bu taahhüdü işaret eden dalların bir listesi ( BAŞ -> usta , vesaire.)

e-postaya bağlı hesapları ücretsiz bulun

Sonraki satır, adını ve e-posta adresini vererek bu taahhüdün yazarını tanımlar.





Taahhüdün tam tarihi ve saati bir sonraki satırda takip edilir.

Son olarak, taahhüt mesajının tam içeriği görünür. git log'un sunduğu diğer her şeyin çoğunu komut satırı seçenekleriyle kontrol edebilirsiniz. İki ana seçenek türü vardır:





  • Git'in her bir taahhüdü nasıl görüntülediğini tanımlayan biçimlendirme.
  • Hangi taahhütleri tanımlayan filtreleme git günlüğü içerir.

Komut satırı seçeneklerine ek olarak git log, dosyaları, taahhütleri, dalları veya diğer başvuru türlerini belirten argümanları kabul eder. Bunlar daha fazla filtreleme uygular.

Git Günlük Çıktısını Biçimlendirme

En basit ayarlamalardan biri, --Tek çizgi çok kısa bir çıktı üreten seçenek:

git log --oneline

Günlükteki her satır artık yalnızca kısaltılmış bir kesinleştirme karmasını ve kesinleştirme mesajının konusunu içerir. Bu, projeye yapılan son taahhütlere genel bir bakış elde etmenin mükemmel bir yoludur:

Ne yazık ki, başka bir bağlam olmadığı için bu bilgi her zaman o kadar yararlı olmuyor. Size proje hakkında belirsiz bir fikir verebilir, ancak yazarlar ve dosyalar hakkında tarihler ve diğer yararlı bilgilerden yoksundur.

Şube Grafiği Görüntüleme

NS --grafik seçeneği, dallar arasındaki ilişkileri görselleştirmenizi sağlar. Çok basit ama karmaşık bir geçmişi çözmeye yardımcı olabilir.

git log --oneline --graph

İlgili: Git'te Yeni Şube Nasıl Oluşturulur

Özelleştirilmiş Pretty Çıktı

kullanarak ayrıntılı olarak belirterek daha karmaşık biçimlendirme elde edebilirsiniz. --güzel seçenek. Sözdizimi çok basitten çok daha karmaşığa doğru gider, yani tüm ayrıntılar için bir kılavuza bakın .

fotoğrafa kenarlık ekleme
git log --pretty=short

temelde aynıdır git günlüğü tarih veya tam mesaj olmadan:

git log --pretty=oneline

eşdeğerdir git günlüğü --oneline .

git log --pretty=fuller

Çok fazla ayrıntı içerir. Teoride farklı insanlar olabilen yazar ve taahhüt edeni bile ayırır:

İle biçim: değişken olarak, çeşitli verilerle değiştirilen yer tutucular da dahil olmak üzere, istediğiniz içeriği içeren bir dize sağlayabilirsiniz. İşte bazı örnek yer tutucular:

  • %H karma işlemek
  • %H kısaltılmış taahhüt hash
  • %ile yazar tarihi
  • %İle birlikte yazar tarihi, akraba
  • %s mesaj konusunu işle
  • % B mesaj gövdesini taahhüt et
  • %P kısaltılmış ana hash'ler

Çıktıya sabit karakterler ekleyebilir ve renklendirebilirsiniz. Bu örnek ayrıca tarih biçiminde bir varyasyonu gösterir:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Parantezlerin tarihi çevrelediğini unutmayın. Hangi biçimlendirmeyi seçerseniz seçin, çıktının bir ardışık düzende veya diğer metin işleme biçimleri için yararlı olmasını istiyorsanız, çıktının her bir bölümünü nasıl ayıracağınızı düşünmelisiniz.

Günlükte Farkları Gösterme

Bir havuzun geçmişine bakarken önemli bir ayrıntı, farklılıkların kendisidir. Ne de olsa kodda gerçekte nelerin değiştiğini temsil ediyorlar! Yeni başlayanlar için, aşağıdakileri kullanarak her bir taahhüdün yanında değişikliklerin bir özetini alabilirsiniz: --kısa durum :

git log --shortstat

Bu, şöyle bir satır ekler:

1 file changed, 48 insertions(+), 2 deletions(-)

Her taahhüdün altına. Örneğin GitHub'daki sayfalar boyunca bu tür özetleri sık sık görürsünüz ve bu, belirli bir taahhüdün kapsamını hızlı bir şekilde değerlendirmenin yararlı bir yoludur. Daha ayrıntılı bilgi için, aşağıdakileri kullanarak tam yama çıktısını (farklar) ekleyebilirsiniz. -P bayrak:

git log -p

Git Günlük Çıkışını Filtreleme

Uyguladığınız biçimlendirme ne olursa olsun, geçerli daldaki tüm taahhütlerin tam günlüğünü görmeye devam edeceksiniz. Git onları sayfalara ayırsa da, yine de çok fazla çıktı olabilir. Aşağıdaki seçenekler, günlüğün hangi taahhütleri içerdiğini özelleştirmenize olanak tanır.

Tutarla Kısıtlama

En son birkaç işlemi göstermek için sonuçları kırpmak istiyorsanız, -[sayı] sözdizimi:

git log -2

Tarihe Göre Kısıtlama

Taahhüt kümesini belirli bir tarih aralığıyla sınırlamak için şunu kullanın: --dan beri ( --sonrasında ) ve --a kadar ( --önce ) seçenekler. Bunların her biri ISO 8601 formatında bir tarih alır. ikisinden birini kullanabilirsin --dan beri veya --a kadar bir aralık belirtmek için kendi başlarına veya her ikisi birlikte. Seçenekler --sonrasında ve --önce eş anlamlıdır.

git log --since='2021-01-01' --until='2021-05-01'

Dosyaya Göre Kısıtlama

Git günlüğü, deponuzdaki her dosya yerine belirli bir dosyaya odaklanabilir. Bu, belirli bir dosyanın zaman içinde nasıl değiştiğini bulmanıza yardımcı olmak için harikadır. Dosya adını git komutunuzun sonuna eklemeniz yeterlidir:

git log filename

Yalnızca etkilenen taahhütleri göreceksiniz dosya adı .

Şubeler Arasındaki Farklar

Bir dalın günlüğünü görüntülerken bazı benzersiz gereksinimleriniz olabilir. Örneğin, tüm geçmişi görmek yerine, o belirli dalda nelerin değiştiğini görmek isteyebilirsiniz. Git günlüğü aracılığıyla yardımcı olabilir ref1..ref2 sözdizimi. Kullanabileceğiniz biraz farklı üç yaklaşım vardır:

  1. Main'de olan ancak dalda olmayan taahhütleri görüntüleyin: |_+_|
  2. Dalda olan ancak ana olmayan taahhütleri görüntüleyin: |_+_|
  3. Yalnızca dalda veya ana dalda bulunan taahhütleri görüntüleyin: |__+_|

İki Etiket Arasındaki Farklar

Tıpkı şubeler arasındaki geçmişi görüntüleyebileceğiniz gibi ref1..ref2 sözdizimi, aynı şekilde etiketler arasındaki geçmişi de görüntüleyebilirsiniz. Sonuçta, hem etiketler hem de dallar referans türleridir.

git log --oneline origin/branch..origin/main

Daha büyük bir proje için sürüm notları hazırlıyorsanız, git kısa günlüğü ilk bağlantı noktanız olmalıdır. Yanlarında taahhüt konuları olan yazarların bir listesini üretir. Geçmişi git log'a benzer şekilde sınırlamak için bir referans aralığı iletebilirsiniz:

git log --oneline origin/ main ..origin/ branch

NS git göster komutu olduğundan daha çok yönlüdür git günlüğü . Taahhüt geçmişinin ötesinde etiketler ve diğer git nesneleri türleri ile çalışabilir. ile birçok seçeneği paylaşır. git günlüğü , ancak buna yalnızca alt düzey ayrıntılara inmeniz gerekiyorsa gerçekten ihtiyacınız olacak.

Git Log ile Geçmişi Gözden Geçirin

Git log karmaşık bir komuttur, ancak en temel seçeneklerinden çokça faydalanabilirsiniz. Bir havuzun geçmişine göz atmak, değişikliklerin ne sıklıkla meydana geldiğini ve kaç kişinin bunları yaptığını anlamanın mükemmel bir yoludur. Bir projenin geçmişini iyi bir şekilde anladıktan sonra, buna kendiniz katkıda bulunmak için harika bir konumda olacaksınız.

bilgisayardan telefona nasıl dosya aktarılır
Paylaş Paylaş Cıvıldamak E-posta Sosyal Kodlama Trendine Katılın ve GitHub Depolarına Katkıda Bulunun

Kodlama kaslarınızı çalıştırmak ve açık kaynak projelerine yardımcı olmak ister misiniz? GitHub'a nasıl katkıda bulunacağınız aşağıda açıklanmıştır.

Sonrakini Oku
İlgili konular
  • Programlama
  • GitHub
  • Kodlama İpuçları
Yazar hakkında Bobby Jack(58 Makale Yayımlandı)

Bobby, yirmi yılı aşkın bir süredir yazılım geliştiricisi olarak çalışan bir teknoloji tutkunu. Oyun konusunda tutkulu, Switch Player Magazine'de İnceleme Editörü olarak çalışıyor ve çevrimiçi yayıncılık ve web geliştirmenin tüm yönleriyle ilgileniyor.

Bobby Jack'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın