Documentation / git-status.txton commit Merge branch 'maint' (fab4502)
   1git-status(1)
   2=============
   3
   4NAME
   5----
   6git-status - Show the working tree status
   7
   8
   9SYNOPSIS
  10--------
  11'git status' [<options>...] [--] [<pathspec>...]
  12
  13DESCRIPTION
  14-----------
  15Displays paths that have differences between the index file and the
  16current HEAD commit, paths that have differences between the working
  17tree and the index file, and paths in the working tree that are not
  18tracked by git (and are not ignored by linkgit:gitignore[5]). The first
  19are what you _would_ commit by running `git commit`; the second and
  20third are what you _could_ commit by running 'git add' before running
  21`git commit`.
  22
  23OPTIONS
  24-------
  25
  26-s::
  27--short::
  28        Give the output in the short-format.
  29
  30--porcelain::
  31        Give the output in a stable, easy-to-parse format for scripts.
  32        Currently this is identical to --short output, but is guaranteed
  33        not to change in the future, making it safe for scripts.
  34
  35-u[<mode>]::
  36--untracked-files[=<mode>]::
  37        Show untracked files (Default: 'all').
  38+
  39The mode parameter is optional, and is used to specify
  40the handling of untracked files. The possible options are:
  41+
  42--
  43        - 'no'     - Show no untracked files
  44        - 'normal' - Shows untracked files and directories
  45        - 'all'    - Also shows individual files in untracked directories.
  46--
  47+
  48See linkgit:git-config[1] for configuration variable
  49used to change the default for when the option is not
  50specified.
  51
  52-z::
  53        Terminate entries with NUL, instead of LF.  This implies
  54        the `--porcelain` output format if no other format is given.
  55
  56
  57OUTPUT
  58------
  59The output from this command is designed to be used as a commit
  60template comment, and all the output lines are prefixed with '#'.
  61The default, long format, is designed to be human readable,
  62verbose and descriptive.  They are subject to change in any time.
  63
  64The paths mentioned in the output, unlike many other git commands, are
  65made relative to the current directory if you are working in a
  66subdirectory (this is on purpose, to help cutting and pasting). See
  67the status.relativePaths config option below.
  68
  69In short-format, the status of each path is shown as
  70
  71        XY PATH1 -> PATH2
  72
  73where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is
  74shown only when `PATH1` corresponds to a different path in the
  75index/worktree (i.e. renamed).
  76
  77For unmerged entries, `X` shows the status of stage #2 (i.e. ours) and `Y`
  78shows the status of stage #3 (i.e. theirs).
  79
  80For entries that do not have conflicts, `X` shows the status of the index,
  81and `Y` shows the status of the work tree.  For untracked paths, `XY` are
  82`??`.
  83
  84    X          Y     Meaning
  85    -------------------------------------------------
  86              [MD]   not updated
  87    M        [ MD]   updated in index
  88    A        [ MD]   added to index
  89    D        [ MD]   deleted from index
  90    R        [ MD]   renamed in index
  91    C        [ MD]   copied in index
  92    [MARC]           index and work tree matches
  93    [ MARC]     M    work tree changed since index
  94    [ MARC]     D    deleted in work tree
  95    -------------------------------------------------
  96    D           D    unmerged, both deleted
  97    A           U    unmerged, added by us
  98    U           D    unmerged, deleted by them
  99    U           A    unmerged, added by them
 100    D           U    unmerged, deleted by us
 101    A           A    unmerged, both added
 102    U           U    unmerged, both modified
 103    -------------------------------------------------
 104    ?           ?    untracked
 105    -------------------------------------------------
 106
 107
 108CONFIGURATION
 109-------------
 110
 111The command honors `color.status` (or `status.color` -- they
 112mean the same thing and the latter is kept for backward
 113compatibility) and `color.status.<slot>` configuration variables
 114to colorize its output.
 115
 116If the config variable `status.relativePaths` is set to false, then all
 117paths shown are relative to the repository root, not to the current
 118directory.
 119
 120If `status.submodulesummary` is set to a non zero number or true (identical
 121to -1 or an unlimited number), the submodule summary will be enabled for
 122the long format and a summary of commits for modified submodules will be
 123shown (see --summary-limit option of linkgit:git-submodule[1]).
 124
 125SEE ALSO
 126--------
 127linkgit:gitignore[5]
 128
 129Author
 130------
 131Written by Junio C Hamano <gitster@pobox.com>.
 132
 133Documentation
 134--------------
 135Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 136
 137GIT
 138---
 139Part of the linkgit:git[1] suite