Documentation / git-symbolic-ref.txton commit Merge branch 'js/mingw-gcc-stack-protect' (32749c3)
   1git-symbolic-ref(1)
   2===================
   3
   4NAME
   5----
   6git-symbolic-ref - Read, modify and delete symbolic refs
   7
   8SYNOPSIS
   9--------
  10[verse]
  11'git symbolic-ref' [-m <reason>] <name> <ref>
  12'git symbolic-ref' [-q] [--short] <name>
  13'git symbolic-ref' --delete [-q] <name>
  14
  15DESCRIPTION
  16-----------
  17Given one argument, reads which branch head the given symbolic
  18ref refers to and outputs its path, relative to the `.git/`
  19directory.  Typically you would give `HEAD` as the <name>
  20argument to see which branch your working tree is on.
  21
  22Given two arguments, creates or updates a symbolic ref <name> to
  23point at the given branch <ref>.
  24
  25Given `--delete` and an additional argument, deletes the given
  26symbolic ref.
  27
  28A symbolic ref is a regular file that stores a string that
  29begins with `ref: refs/`.  For example, your `.git/HEAD` is
  30a regular file whose contents is `ref: refs/heads/master`.
  31
  32OPTIONS
  33-------
  34
  35-d::
  36--delete::
  37        Delete the symbolic ref <name>.
  38
  39-q::
  40--quiet::
  41        Do not issue an error message if the <name> is not a
  42        symbolic ref but a detached HEAD; instead exit with
  43        non-zero status silently.
  44
  45--short::
  46        When showing the value of <name> as a symbolic ref, try to shorten the
  47        value, e.g. from `refs/heads/master` to `master`.
  48
  49-m::
  50        Update the reflog for <name> with <reason>.  This is valid only
  51        when creating or updating a symbolic ref.
  52
  53NOTES
  54-----
  55In the past, `.git/HEAD` was a symbolic link pointing at
  56`refs/heads/master`.  When we wanted to switch to another branch,
  57we did `ln -sf refs/heads/newbranch .git/HEAD`, and when we wanted
  58to find out which branch we are on, we did `readlink .git/HEAD`.
  59But symbolic links are not entirely portable, so they are now
  60deprecated and symbolic refs (as described above) are used by
  61default.
  62
  63'git symbolic-ref' will exit with status 0 if the contents of the
  64symbolic ref were printed correctly, with status 1 if the requested
  65name is not a symbolic ref, or 128 if another error occurs.
  66
  67GIT
  68---
  69Part of the linkgit:git[1] suite