'Git günlüğü', 'kaydetme tarihini' gösterecek şekilde nasıl yapılandırılır


127

Bunun yerine git loggösterilecek şekilde nasıl yapılandırabilirim ?commit dateauthor date


25
@Colleen Her işlemin ilişkili iki tarihi vardır - AuthorDate ve CommitDate ( git show --pretty=fuller HEADbir örnek olarak). Yerel geliştirme için bunlar genellikle aynıdır, ancak e-posta veya diğer mekanizmalar yoluyla eklenen yamalar için farklı olabilirler, burada AuthorDate yamanın oluşturulduğu tarih ve CommitDate depoya gerçekte uygulandığı zamandır.
twalberg

Yanıtlar:


145

Tarihi yazdırmak için birkaç seçenek var . Muhtemelen en kolayı önceden pişirilmiş --prettyformatlardan birini kullanmaktır , örneğin git log --pretty=fuller- bu her iki tarihi de gösterecektir. Yalnızca bir tarih görmek istiyor, ancak bunu taahhüt tarihi yapmak istiyorsanız, kullanabilirsiniz git log --format=<some stuff>. Biçimi tanımlamak için izin verilen tüm kodlar içinde belgelenmiştir git help log. Tarih biridir taahhüt %cd, %cD, %cr, %ctveya %cine biçimine bağlı bunu tercih ederim.

Sık yapmak istediğiniz bir şeyse, bunu bir takma ada koyun veya yazarken kaydetmek için yardımcı bir komut dosyası yazın.


53

Göreceli taahhüt tarihi için kullanabilir --pretty=formatve kullanabilirsiniz %cr.

Örneğin:

$ git log --graph --pretty=format:'%C(auto)%h%d (%cr) %cn <%ce> %s'

Bunun kullanımını kolaylaştırmak için git'te bir takma ad tanımlayabilirsiniz. Aşağıdakilere sahibim .gitconfig:

[alias]
# see `git help log` for detailed help.
#   %h: abbreviated commit hash
#   %d: ref names, like the --decorate option of git-log(1)
#   %cn: commiter name
#   %ce: committer email
#   %cr: committer date, relative
#   %ci: committer date, ISO 8601-like format
#   %an: author name
#   %ae: author email
#   %ar: author date, relative
#   %ai: author date, ISO 8601-like format
#   %s: subject
# my awesome git log replacement
lol  = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s\"
# same as above, but ISO date
lold = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s\"
# using build-in standards
lol2 = log --oneline --graph --decorate
# shows branches and their last commits
lol3 = log --all --graph --decorate --oneline --simplify-by-decoration

Linux veya benzeri sistemlerde, tek tırnak kullanabilirsiniz 'yerine çift tırnak ":

[alias]
lol = log --graph --pretty=format:'%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s'

Bununla git lol, güzel çıktıyı görmek için basitçe çalıştırın veya diğer varyantları.

İşte çıktı git lol --simplify-by-decoration:

git lol çıkışı

  • Güzel görünüyor. :)
  • lolyazmaktan daha kolay logve kulağa daha iyi geliyor.
    • Ayrıca, git logihtiyacınız olursa normal olana erişmenizi sağlar .
  • Gözleriniz içeriği farklı renklere göre hızlı bir şekilde tarayabilir.
  • İsimler ve e-postalar, birçok katılımcısı olan büyük projeler / kuruluşlar için çok kullanışlıdır.
  • Hash / ref için varsayılan renklendirme kullanılıyor çünkü zaten oldukça iyi.

git loldISO formatındaki tarihlerin çıktısı . Katkıda bulunan kişinin saat dilimini kolayca görebilmenin bonusuyla birlikte bir taahhüdün yapıldığı kesin tarihi / saati görmek için kullanışlıdır.

görüntü açıklamasını buraya girin

2020-06'yı düzenleme : Ekran görüntüleri eklendi. (Hash hash) ve (ref adları) %C(auto)için (auto / default renklendirme) kullanılacak şekilde güncellendi . E -postaya ek olarak (gönderen adı) eklendi .%h%d%cn


1
Bir ayrıştırma hatası alıyorum: git log --graph --pretty=format:\"%C(yellow)%h%Creset%C(cyan)%C(bold)%d%Creset %C(cyan)(%cr)%Creset %C(green)%ce%Creset %s\" bash: beklenmedik belirteç yakınında sözdizimi hatası `('
frakman1

2
@ frakman1 - yukarıdaki hattın terminalde çalışması için "s" lerden kurtulmanız gerekiyor
stites

2
Düzeltilmiş satır: git log --graph --pretty = format: "% C (sarı)% h% Creset% C (camgöbeği)% C (koyu)% d% Creset% C (camgöbeği) (% cr)% Creset% C (yeşil)% ce% Creset% s "
RedSands

1

Bu biçimi tercih ediyorum, yazar adını içermiyor ve kesinleştirme için gerçek tarihi içeriyor.

git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset  %C(green)%Creset %s" --date=short
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.