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?

  • How to abandon (switch from) a branch that requires merging?
  • mysterious vanishing branches in git
  • Setting up Gerrit with a Git mirror of a Subversion repository
  • Capturing shell script output from Jenkins Pipeline
  • Specify greater than or equal to Git tag in requirements.txt
  • Visual Studio 2013 git, only Master branch listed
  • Resolving git conflict visual studio 2013
  • Failed to detect set buildpack
  • Deploying Configuration Files with Production Code
  • Can't commit update-index on Windows
  • git init, add, commit from a different directory
  • Telling git its ok to remove untracked files
  • One Solution collect form web for “Git branch/tag name with ^{}”

    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.)

    Git Baby is a git and github fan, let's start git clone.