axiopisty
axiopisty

Reputation: 5137

Git branch/tag name with ^{}

Running the command git ls-remote lists the following entries:

e6c1ddea6ee8eefa9e96e349dd4fad4a48c16448    refs/tags/1.1
1a3b5ae3a50ca2f24e5cd917cbf51d371f1dd01e    refs/tags/1.1^{}
81901877c5add523cd4a4bb8f51ad3bbbacbd686    refs/tags/1.2
4681b1ae6ec71301019da13d1790c2f808c2c553    refs/tags/1.2^{}

What does the ^{} mean in the output?

Upvotes: 5

Views: 301

Answers (1)

torek
torek

Reputation: 488203

They are not part of the name, but rather an indicator to git rev-parse that it should dereference a tag (and, with any luck, find a commit, although in theory the tag could point to another tag, or even a tree or blob; but if it points to another tag, the ^{} keeps on peeling the onion layers until it hits a non-tag).

git ls-remote (or really, the remote itself) uses this syntax to send you the commit-ID. (I'm not quite sure what happens if the tag ultimately points to a tree or blob.)

Upvotes: 5

Related Questions