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と混合してしまって泣きたくなります。