Andrew Arnott
Andrew Arnott

Reputation: 81821

Git command to display HEAD commit id?

What command can I use to print out the commit id of HEAD?

This is what I'm doing by hand:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

But I need a script that can reliably pipe the output of some command to a text file such that the text file contains exactly the commit id of HEAD (nothing more or less, and not just a ref). Can anyone help?

Upvotes: 385

Views: 407089

Answers (8)

medmik
medmik

Reputation: 19

You can use this command

$ git rev-list HEAD

You can also use the head Unix command to show the latest n HEAD commits like

$ git rev-list HEAD | head -n 2

Upvotes: 1

Stuti Verma
Stuti Verma

Reputation: 1069

You can use

git log -g branchname

to see git reflog information formatted like the git log output along with commit id.

Upvotes: 0

Avdhut Mankavale
Avdhut Mankavale

Reputation: 385

git rev-parse --abbrev-ref HEAD

Upvotes: 1

JotaBe
JotaBe

Reputation: 39055

You can specify git log options to show only the last commit, -1, and a format that includes only the commit ID, like this:

git log -1 --format=%H

If you prefer the shortened commit ID:

git log -1 --format=%h

Upvotes: 17

Ali Moreno
Ali Moreno

Reputation: 79

Play with Bash:

git show HEAD | sed -n 1p | cut -d " " -f 2

Upvotes: 7

Randal Schwartz
Randal Schwartz

Reputation: 44220

Use the command:

git rev-parse HEAD

For the short version:

git rev-parse --short HEAD

Upvotes: 682

cyb0k
cyb0k

Reputation: 2738

git log -1

for only commit id

git log | head -n 1 

Upvotes: 78

Abhijit Mazumder
Abhijit Mazumder

Reputation: 9504

Old thread, still for future reference...:) even following works

git show-ref --head

by default HEAD is filtered out. Be careful about following though ; plural "heads" with a 's' at the end. The following command shows branches under "refs/heads"

 git show-ref --heads

Upvotes: 21

Related Questions