Help us understand the problem. What is going on with this article?

git rev-parse でできること

More than 5 years have passed since last update.

git の記事などを見ていると、よく rev-parse というコマンドが出てきます。
rev-parse単体でググっても使い道がよくわからないので、メモ変わりにrev-parseでできることをここに書いてみます。

【参考】

git-rev-parse(1) Manual Page
https://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html

使用可能なリファレンス(ref)を渡すとハッシュを返す

ハッシュ

$ git rev-parse 1838ad4786...02cc4e713a
>> 02cc4e713a10dc68bcba40919f0f23eb62b45ec4
>> 1838ad478661d8cdb544c9adf921d08a97f7cc91
>> ^02cc4e713a10dc68bcba40919f0f23eb62b45ec4

tag

$ git rev-parse v0.1.1
>> 4b7688eda62c07ec71f7a9576395861c252bd904

省略ハッシュ

$ git rev-parse 4b7688
>> 4b7688eda62c07ec71f7a9576395861c252bd904

gitリポジトリのディレクトリを返す

$ git rev-parse --git-dir
 >> .git

現在のディレクトリにリポジトリがあるかどうかを確認

$ git rev-parse --is-inside-work-tree
>> true

リポジトリが共有リポジトリか確認

$ git rev-parse --is-bare-repository
>> false

トップレベルディレクトリを絶対パスで取得

$ git rev-parse --show-toplevel
>> /path/to/repository

サブディレクトリにいるときにトップレベルのディレクトリからの相対パスを出力

$ git rev-parse --show-cdup
>> path/

使用可能なすべてのリファレンスを出力

$ git rev-parse --all
>> d2c70a0299127fbfa3cb898cb0b1ffd1186a01b4
>> a8a66d65282a22ae93954a468121a66ffc6926a3
>> d8cf577b01c3b52b1d568cf32230cf3537c3a5f5
>> f55abf927a2300831bbffb877a6f6ae8bec701d6
>> 81732ec5d6040da5c1ad9b68022292c97d6d3198
>> 69249bdcb954bb851df9901ed6491119836c2c8d
>> 63c8ebd4f31a1d580b8068f44b547d8418002972
>> b771459c556b79442ef0c5a1569c74a173c9492b
>> 53d65668f327df193637c4150a45fab1eacd138f
>> 4b7688eda62c07ec71f7a9576395861c252bd904
>> d490a6e5c0862bcd49450d79ba81d6d01470c42a

ブランチ

$ git rev-parse --branches
>> d2c70a0299127fbfa3cb898cb0b1ffd1186a01b4

タグ

$ git rev-parse --tags
>> d8cf577b01c3b52b1d568cf32230cf3537c3a5f5
>> f55abf927a2300831bbffb877a6f6ae8bec701d6

リモート

$ git rev-parse --remotes
>> a8a66d65282a22ae93954a468121a66ffc6926a3

自分が知ってるのはこれくらいです。
もっとあればコメントお願いします!

Alice1017
元Python書き・現JS書き
http://github.com/alice1017
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away