Code

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