Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git Log issue: date is not showing when oneline option in used

Tags:

git

git-log

I see lots of great answers in Pretty git branch graphs that show the oneline option for git log being used with dates. However, when I run these commands my output is different, I don't see the dates. The options --oneline and --date=<relative or iso> seem to be incompatible.

Result for git log --date=iso:

enter image description here

Result for git log --date=iso --oneline:

enter image description here

I tried this on three different computers with similar results.

Update:

The linked question asks "How to commit date". Perhaps they mean "How to show the commit date", but as it stands the question is not clear. Also, in the possible duplicate the OP asks about several options simultaneously. I am specifically asking how to show or print dates (author date or commit date) when using the oneline option. The other OP is also concerned with the size of the commit history, which is also outside the scope of my question.

Perhaps the other question could be edited to match this question, but it didn't come up when I searched for this issue (although I didn't use the git-log tag specifically, because I didn't notice that tag until I was searching for appropriate tags for my question).

Also, I know of no other effective way to show the results of printed formatting without using screenshots, especially because they have color. For what it's worth, the linked question also uses screenshots.

like image 200
geneorama Avatar asked Jan 02 '19 17:01

geneorama


3 Answers

Should add the date in the format.

For instance:

git log --pretty=format:"%h %s %an %ad" --date=relative

Where %ad means "author date" using --date option value

like image 170
Gonzalo Matheu Avatar answered Sep 29 '22 07:09

Gonzalo Matheu


This one will add the date in "YYYY-MM-DD" format, in blue, between the commit hash and the description:

git log --pretty=format:'%C(auto)%h%C(blue) %<|(19)%as%C(auto)%d %s'

You can make it an alias gl with

alias gl="git log --pretty=format:'%C(auto)%h%C(blue) %<|(19)%as%C(auto)%d %s'"

enter image description here

I added the %<|(19) which instructs the next format operator (%as which stands for YYYY-MM-DD) to occupy all space up to the 19th column in the terminal, and be left-aligned in that space. You don't need this for my example, because %as==YYYY-MM-DD has a fixed-width anyway. But you may want to try alternative date formats like %ar, %ad, or %aD. For more information on using custom formatting, check man git-log and search for PRETTY FORMATS.

like image 35
Myridium Avatar answered Sep 29 '22 06:09

Myridium


You indeed cannot use these two options together. You could, however, emulate this behavior by explicitly stating the format:

$ git log --format='%h (%ai) %s'
like image 21
Mureinik Avatar answered Sep 29 '22 06:09

Mureinik