コミット履歴の管理ツールGitには、git show-refとgit rev-parseというコマンドが用意されています。
それぞれ、指定したブランチのコミット番号をフルで取得できるコマンドです。
ここでは、git show-refとgit rev-parseのそれぞれの使い方について解説してます。
git show-refコマンドとは何か?
使い方
「git show-ref」コマンドとは、ローカルにある、リモート追跡ブランチも含めたすべてのブランチのコミット番号の一覧を表示するコマンドです。
$ git show-ref
「ref」とはGitにおける参照名のことです。git logしたときに表示される「main」「origin/main」などが参照名です。
実例
$ git show-ref
5c5a6d4e7991acd73a834c3a888d43cc35fecac4 refs/heads/main
f95d09eb018a3f175b803cf53b01aac3de0b64a refs/heads/test
5ca6d4e7991acd73a834c3a888d43cc35fecac4 refs/remotes/origin/HEAD
5c5a6d4e7991acd73a834c3a888d43cc35fecac4 refs/remotes/origin/main
7000bfd2b999eb57f1c74a354a9a7d48580a90f refs/remotes/origin/test
ブランチを指定する
「git show-ref」コマンドの引数にブランチ名を記載すると、そのブランチ名に一致する情報のみを取得することができます。
$ git show-ref [ブランチ名]
例えば、「origin/main」とした場合、「origin/main」ブランチの情報のみが表示されます。
実例
$ git show-ref origin/main
5c5a6d4e7991acd73a834c3a888d43cc35fecac4 refs/remotes/origin/main
コミット番号のみを表示する
「git show-ref」コマンドのオプションで「-s」を指定すると、ブランチ名(参照名)は表示せず、コミット番号のみ表示します。
$ git show-ref -s
上記の「ブランチ名の指定」と組み合わせれば、指定したブランチのコミットのコミット番号のみを表示します。
実例
$ git show-ref origin/main -s
5c5a6d4e7991acd73a834c3a888d43cc35fecac4
git rev-parseコマンドとは何か?
「git rev-parse」コマンドとは、指定したコミットのコミット番号を取得するコマンドです。
$ git rev-parse <コミット>
コミットの指定方法は、いくつかありますが「ブランチ名」や「HEAD」または「@」を使うことが一般的です。
現在のブランチの最新のコミットを取得する
git rev-parseコマンドを使って、現在のブランチの最新のコミットを取得するには、引数に「HEAD」または「@」を指定します。
$ git rev-parse HEAD
実例
$ git rev-parse HEAD
5c5a6d4e7991acd73a834c3a888d43cc35fecac4
git logで現在のブランチの最新のコミットを確認すると、コミットのハッシュ値が一致していることがわかります。
$ git log
commit 5c5a6d4e7991acd73a834c3a888d43cc35fecac4 (HEAD -> main, origin/main, origin/HEAD)
指定したブランチの最新のコミットを取得する
git rev-parseコマンドを使って、指定したブランチの最新のコミットを取得するには、引数でブランチ名を指定します。
$ git rev-parse <ブランチ名>
実例
$ git rev-parse main
5c5a6d4e7991acd73a834c3a888d43cc35fecac4
git logで現在のブランチの最新のコミットを確認すると、コミットのハッシュ値が一致していることがわかります。
$ git log
commit 5c5a6d4e7991acd73a834c3a888d43cc35fecac4 (HEAD -> main, origin/main, origin/HEAD)
「–short」オプションで短いコミット番号を取得する
完全なコミット番号ではなく、最小の桁数のコミット番号を取得するには「–short」オプションを使います。
$ git rev-parse --short <コミット>
実例
現在のブランチの最新よりも2つ前のコミット番号を、最小の桁数で表示する場合は以下のようにします。
$ git rev-parse --short @^^
5c22e8d
参考
git show-refとgit rev-parseの応用編として、リモートレポジトリの本番用のブランチのコミット番号と、現在のブランチの現在のコミット番号を比較する使い方もできます。
詳細は下記をご参考ください。