63

I'd like to parse meta information from git repository. I'd like to fetch a single information for a commit, as in

git log --pretty=format:%an HEAD^..HEAD

Problem is, this is not working for the first commit in repository.

git show --pretty=format:%an HEAD^..HEAD

is also close to what I want, except I'm not interested in parsing actual diff.

Any idea how to make git log work for the first commit or how to disable git show from showing commit content?

Or, is there any better way how to retrieve metadata about given commit?

Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985
Almad
  • 5,753
  • 7
  • 35
  • 53

3 Answers3

91

Supply the quiet option to show to suppress the diff.

git show --quiet HEAD

So for your example, author name:

git show --quiet --pretty=format:%an
CB Bailey
  • 755,051
  • 104
  • 632
  • 656
15
git --no-pager show -s --format='%an <%ae>' COMMIT

(Taken from quora.com)

koppor
  • 19,079
  • 15
  • 119
  • 161
0

git log -n 1 --format='%an'

-n 1 restricts the log to a single commit.

Does the same as git show --quiet, although I prefer it a bit since it is documented on man git-log while --quiet is not documented on man git-show as of 2.17.

Also note that you can golf even better with show with the short form of --quiet:

git show -q --format='%an'
Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985