Gitのバージョン
$ git --version git version 2.21.0
git rev-parse --show-toplevel
を実行すると、Gitで管理しているrootのpathを知ることができます。
rails new check_rev-parse-dir
でRailsプロジェクト作成してgit rev-parse --show-toplevel
の動作確認をすると以下のようになります。
$ pwd check_rev-parse-dir $ tree -L 1 . ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── app ├── bin ├── config ├── config.ru ├── db ├── lib ├── log ├── package.json ├── public ├── test ├── tmp └── vendor $ cd app $ pwd > check_rev-parse-dir/app $ git rev-parse --show-toplevel > check_rev-parse-dir
git rev-parse --help
で他に便利なオプションはないかと調べると以下のような説明がありました。
NAME git-rev-parse - Pick out and massage parameters
情報工学やそれに付随する技術を説明する際に、massageという単語を見たことがありませんでした。 もしかして、messageの誤植ではないかと調べてみるとWhat does git rev-parse do?という質問がありました。
質問の回答に以下のような一文があります。
Massage just implies that it is possible to convert the info from one form into another
なんとなく、概要が掴めたのでmassageという単語について調べてました。
英単語を日本語で理解するのに苦手意識があるので、ロングマン現代英英辞典を利用します。
単語の意味を調べる時に重要なのは「品詞と、どのような文脈で利用されているか」なのでもう一度説明文を見てみましょう。Pick outとmassageは、andによって並列の関係になっていることから動詞であることがわかります。
NAME git-rev-parse - Pick out and massage parameters
ロングマン現代英英辞典によると動詞massageは、3つの意味があることがわかります。文脈から今回は、二つ目の意味が合致していそうです。
to press and rub someone’s body with your hands, to help them relax or to reduce pain in their muscles
to change official numbers or information in order to make them seem better than they are – used to show disapproval.(類似語 cook the books)
massageというのは、情報を利用しやすいように隠蔽してくれるということがわかりました。
これは、massage parametersに当てはめてもしっくりきます。
以上のことから、git rev-parse
はGitリポジトリのメタ情報を得るためのコマンドであることがわかりました。別のGitコマンドの引数や関数化する時に利用することができそうです。
massageに対しての疑問が払拭されたので、便利なコマンドを紹介します。
コマンド集
現在のbranch名を取得
git rev-parse --abbrev-ref HEAD
HEADのハッシュを取得
git rev-parse HEAD
ショートバージョン
git rev-parse --short HEAD
.gitディレクトリの絶対パスを取得
git rev-parse --git-dir
全てのブランチ、tag、リモートブランチをハッシュで取得
git rev-parse --branches
git rev-parse --tags
git rev-parse --remotes
全てのリモートブランチを名前で取得
git rev-parse --abbrev-ref --remotes
まとめ
- 自作shellコマンドでGitを操作するときに、
git rev-parse
を覚えているよい
参考文献
- 作者: Scott Chacon,Ben Straub
- 出版社/メーカー: Apress
- 発売日: 2014/11/18
- メディア: Kindle版
- この商品を含むブログ (1件) を見る