Reputation: 3720
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
:
Result for git log --date=iso --oneline
:
I tried this on three different computers with similar results.
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.
Upvotes: 11
Views: 4100
Reputation: 904
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'"
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
.
Upvotes: 13
Reputation: 1967
git log --pretty=format:'%C(auto)%h%d %s %aN %ad'
That has the same formatting (colors and information) plus adds the Author name and date (%aN %ad
) to the end unformatted (you can move them wherever you like). I spent over an hour trying to figure out how to get %d (refs like branches, tags, etc.) to show up with different colors depending on remote, local, type, etc., but it simply needed %C(auto)
in front of it all to copy the formatting that --oneline
uses. Since author and date aren't in --oneline
, they're just the normal text color for your terminal. You can add whatever separators and coloring you want. See https://www.git-scm.com/docs/git-log#_pretty_formats for a reference to all the formats you can use.
You can add --date=xxx
to specify date format.
Upvotes: 3
Reputation: 10064
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
Upvotes: 14
Reputation: 310983
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'
Upvotes: 3