Given one argument, reads which branch head the given symbolic
ref refers to and outputs its path, relative to the .git/
directory. Typically you would give HEAD as the <name>
argument to see which branch your working tree is on.
Given two arguments, creates or updates a symbolic ref <name> to
point at the given branch <ref>.
Given --delete and an additional argument, deletes the given
symbolic ref.
A symbolic ref is a regular file that stores a string that
begins with ref: refs/. For example, your .git/HEAD is
a regular file whose content is ref: refs/heads/master.