LoginSignup
5
4

More than 5 years have passed since last update.

git ls-remote --heads の --headsって何だ

Posted at

git ls-remote の機能とオプションの意味がわからなかったが、わかった。(たぶん

git ls-remote
リモートリポジトリのコミットIDを取得する

git ls-remote --heads
リモートリポジトリの各ブランチの先頭コミットのIDを取得してくるっぽい

git ls-remoteを叩くと、
コミットID ref/heads/ブランチ名1
コミットID ref/heads/ブランチ名2
コミットID ref/tags/....

などと返ってくるが、
こんなかから、ref/heads/のみを取ってくるのが、--heads オプション

refはリファレンスのこと。

リファレンスを、紐付け、ポインター、簡易的な指定方法などと解釈するとわかりやすいかも。

コミットは長ったらしいIDで表されるが、僕らは別の方法でそれを表現する。
それがリファレンス。
リファレンスにもいくつか種類がある。
そのうちの一つが、特定ブランチの一番先頭にあるコミットさん達(=heads)のこと。

[コミットID1 ref/heads/ブランチA]  という表記は、
ブランチAの先頭コミットがこのコミットのリファレンスであることを示してる

前述のように、リファレンスには種類がある
headsの他に、tagsとか。

gitには、 tagの機能もあるっぽいのです。
これもあるコミットを簡易的に特定するリファレンスになるっぽい

・ブランチの先頭 /heads
・タグ /tags

この二つはリファレンス。

以上です。

あとがき
headsってわかりにくいですよね。
初心者の自分には、HEADと混合してしまって泣きたくなります。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4