HEADコミットIDを表示するGitコマンド?


250

HEADのコミットIDを出力するには、どのコマンドを使用できますか?

これは私が手でやっていることです:

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

しかし、テキストファイルにHEADのコミットID(多かれ少なかれ、単なる参照ではない)が正確に含まれるように、コマンドの出力をテキストファイルに確実にパイプ処理できるスクリプトが必要です。誰か助けてもらえますか?


以前にも同様の質問があります。そして、それはよくここに答えた:stackoverflow.com/questions/44994626/...を
smwikipedia

回答:


450

次のコマンドを使用します。

git rev-parse HEAD

ショートバージョンの場合:

git rev-parse --short HEAD

34
ハッシュの短いバージョンを探している人にとっては、git rev-parse --short HEADうまくいきます。
mgarciaisaia 2015


15

古いスレッド、まだ将来の参照用... :)以下の作業でも

git show-ref --head

デフォルトでは、HEADは除外されます。ただし、以下に注意してください。末尾に「s」がある複数の「頭」。次のコマンドは、「refs / heads」の下のブランチを示しています

 git show-ref --heads

4
これらのコマンドを(大きな)gitリポジトリで使用すると、から2行、からgit show-ref --heads6290行取得されgit show-ref --headます。したがって、1つのハッシュだけが必要な場合は、意図した結果にならない可能性があります。
Remigius Stalder 2017年

7

次のgit logように-1、最後のコミットのみを表示するオプションと、コミットIDのみを含む形式を指定できます。

git log -1 --format=%H

短縮されたコミットIDを使用する場合:

git log -1 --format=%h



1

https://git-scm.com/docs/git-logによると 、コンソールでよりきれいな出力を得るには、git-logコマンドの--decorate引数を使用できます。

git log --pretty=oneline --decorate

印刷されます:

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

0

git rev-parse --abbrev-ref HEAD


1
これにはコミットIDは表示されませんが、コミットに関連付けられている名前(ブランチやタグなど)は表示されます。これは、元のユーザーが望んでいたものではありません。
Asfand Qazi 2018

0

このコマンドを使用できます

$ git rev-list HEAD

headUnixコマンドを使用して、次のn HEADような最新のコミットを表示することもできます。

$ git rev-list HEAD | head - 2


0

使用できます

git log -g branchname

出力のgit reflogようにフォーマットされた情報を表示するにはgit log

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.