I am trying to customize the format for git log
. I want all commits to be shown in one line. Each line should only show the first line of the commit message.
I found out that git log --pretty=short
should do the trick but on my computer it shows the full log as git log
does (besides the time stamp).
Further, I tried to use the placeholders as defined in the man page. Though, I could not find a command to shorten the log message. I tried this line git log --pretty=format:'%h : %s'
which shows the shorted hash %h
and the full message %s
in one line.
I am using git version 1.7.3.1.msysgit.0
on Vista.
Maybe it has something to do with the way I write my commit messages. Here is an example:
Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
So, with the example given I only want to be output Added some functionality.
prepended by the shortend hash.
Have you tried this?
git log --pretty=oneline --abbrev-commit
The problem is probably that you are missing an empty line after the first line. The command above usually works for me, but I just tested on a commit without empty second line. I got the same result as you: the whole message on one line.
Empty second line is a standard in git commit messages. The behaviour you see was probably implemented on purpose.
The first line of a commit message is meant to be a short description. If you cannot make it in a single line you can use several, but git considers everything before the first empty line to be the "short description". oneline
prints the whole short description, so all your 3 rows.