git symbolic-ref [-m <reason>] <name> <ref> git symbolic-ref [-q] [--short] <name> git symbolic-ref --delete [-q] <name>
Given one argument, reads which branch head the given symbolic
ref refers to and outputs its path, relative to the
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>.
--delete and an additional argument, deletes the given
A symbolic ref is a regular file that stores a string that
ref: refs/. For example, your
a regular file whose contents is
Delete the symbolic ref <name>.
Do not issue an error message if the <name> is not a symbolic ref but a detached HEAD; instead exit with non-zero status silently.
When showing the value of <name> as a symbolic ref, try to shorten the value, e.g. from
Update the reflog for <name> with <reason>. This is valid only when creating or updating a symbolic ref.
In the past,
.git/HEAD was a symbolic link pointing at
refs/heads/master. When we wanted to switch to another branch,
ln -sf refs/heads/newbranch .git/HEAD, and when we wanted
to find out which branch we are on, we did
But symbolic links are not entirely portable, so they are now
deprecated and symbolic refs (as described above) are used by
git symbolic-ref will exit with status 0 if the contents of the symbolic ref were printed correctly, with status 1 if the requested name is not a symbolic ref, or 128 if another error occurs.
Part of the git(1) suite