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?
This question is related to
git
version-control
According to https://git-scm.com/docs/git-log, for more pretty output in console you can use --decorate argument of git-log command:
git log --pretty=oneline --decorate
will print:
2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test
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
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 - 2
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
git rev-parse --abbrev-ref HEAD
Play with Bash:
git show HEAD | sed -n 1p | cut -d " " -f 2
git log -1
for only commit id
git log | head -n 1
You can use
git log -g branchname
to see git reflog
information formatted like the git log
output
Source: Stackoverflow.com