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
$ git rev-parse 1838ad4786...02cc4e713a
>> 02cc4e713a10dc68bcba40919f0f23eb62b45ec4
>> 1838ad478661d8cdb544c9adf921d08a97f7cc91
>> ^02cc4e713a10dc68bcba40919f0f23eb62b45ec4
$ git rev-parse v0.1.1
>> 4b7688eda62c07ec71f7a9576395861c252bd904
省略ハッシュ
$ git rev-parse 4b7688
>> 4b7688eda62c07ec71f7a9576395861c252bd904
gitリポジトリのディレクトリを返す
$ git rev-parse --git-dir
現在のディレクトリにリポジトリがあるかどうかを確認
$ git rev-parse --is-inside-work-tree
リポジトリが共有リポジトリか確認
$ 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
自分が知ってるのはこれくらいです。
もっとあればコメントお願いします!