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