]>
Commit | Line | Data |
---|---|---|
215a7ad1 JH |
1 | git-status(1) |
2 | ============= | |
3f971fc4 JH |
3 | |
4 | NAME | |
5 | ---- | |
c3f0baac | 6 | git-status - Show the working tree status |
3f971fc4 JH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
9e4b7ab6 | 11 | 'git status' [<options>...] [--] [<pathspec>...] |
3f971fc4 JH |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
2099bca9 JK |
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 | |
5162e697 | 18 | tracked by git (and are not ignored by linkgit:gitignore[5]). The first |
2099bca9 | 19 | are what you _would_ commit by running `git commit`; the second and |
0b444cdb | 20 | third are what you _could_ commit by running 'git add' before running |
2099bca9 | 21 | `git commit`. |
3f971fc4 | 22 | |
9e4b7ab6 JH |
23 | OPTIONS |
24 | ------- | |
25 | ||
26 | -s:: | |
27 | --short:: | |
28 | Give the output in the short-format. | |
29 | ||
46077fa5 MG |
30 | -b:: |
31 | --branch:: | |
32 | Show the branch and tracking info even in short-format. | |
33 | ||
6f157871 JK |
34 | --porcelain:: |
35 | Give the output in a stable, easy-to-parse format for scripts. | |
36 | Currently this is identical to --short output, but is guaranteed | |
37 | not to change in the future, making it safe for scripts. | |
38 | ||
9e4b7ab6 JH |
39 | -u[<mode>]:: |
40 | --untracked-files[=<mode>]:: | |
41 | Show untracked files (Default: 'all'). | |
42 | + | |
43 | The mode parameter is optional, and is used to specify | |
44 | the handling of untracked files. The possible options are: | |
45 | + | |
46 | -- | |
47 | - 'no' - Show no untracked files | |
48 | - 'normal' - Shows untracked files and directories | |
49 | - 'all' - Also shows individual files in untracked directories. | |
50 | -- | |
51 | + | |
52 | See linkgit:git-config[1] for configuration variable | |
53 | used to change the default for when the option is not | |
54 | specified. | |
55 | ||
56 | -z:: | |
6f157871 JK |
57 | Terminate entries with NUL, instead of LF. This implies |
58 | the `--porcelain` output format if no other format is given. | |
2099bca9 | 59 | |
3f971fc4 JH |
60 | |
61 | OUTPUT | |
62 | ------ | |
63 | The output from this command is designed to be used as a commit | |
2099bca9 | 64 | template comment, and all the output lines are prefixed with '#'. |
9e4b7ab6 JH |
65 | The default, long format, is designed to be human readable, |
66 | verbose and descriptive. They are subject to change in any time. | |
3f971fc4 | 67 | |
c7860507 | 68 | The paths mentioned in the output, unlike many other git commands, are |
2099bca9 | 69 | made relative to the current directory if you are working in a |
46f721c8 JK |
70 | subdirectory (this is on purpose, to help cutting and pasting). See |
71 | the status.relativePaths config option below. | |
c7860507 | 72 | |
9e4b7ab6 JH |
73 | In short-format, the status of each path is shown as |
74 | ||
75 | XY PATH1 -> PATH2 | |
76 | ||
77 | where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is | |
78 | shown only when `PATH1` corresponds to a different path in the | |
e92e9cd3 ER |
79 | index/worktree (i.e. the file is renamed). The 'XY' is a two-letter |
80 | status code. | |
81 | ||
82 | The fields (including the `->`) are separated from each other by a | |
83 | single space. If a filename contains whitespace or other nonprintable | |
84 | characters, that field will be quoted in the manner of a C string | |
85 | literal: surrounded by ASCII double quote (34) characters, and with | |
86 | interior special characters backslash-escaped. | |
87 | ||
88 | For paths with merge conflicts, `X` and 'Y' show the modification | |
89 | states of each side of the merge. For paths that do not have merge | |
90 | conflicts, `X` shows the status of the index, and `Y` shows the status | |
91 | of the work tree. For untracked paths, `XY` are `??`. Other status | |
92 | codes can be interpreted as follows: | |
93 | ||
94 | * ' ' = unmodified | |
95 | * 'M' = modified | |
96 | * 'A' = added | |
97 | * 'D' = deleted | |
98 | * 'R' = renamed | |
99 | * 'C' = copied | |
100 | * 'U' = updated but unmerged | |
101 | ||
102 | Ignored files are not listed. | |
9e4b7ab6 JH |
103 | |
104 | X Y Meaning | |
105 | ------------------------------------------------- | |
106 | [MD] not updated | |
107 | M [ MD] updated in index | |
108 | A [ MD] added to index | |
e92e9cd3 | 109 | D [ M] deleted from index |
9e4b7ab6 JH |
110 | R [ MD] renamed in index |
111 | C [ MD] copied in index | |
112 | [MARC] index and work tree matches | |
113 | [ MARC] M work tree changed since index | |
114 | [ MARC] D deleted in work tree | |
115 | ------------------------------------------------- | |
116 | D D unmerged, both deleted | |
117 | A U unmerged, added by us | |
118 | U D unmerged, deleted by them | |
119 | U A unmerged, added by them | |
120 | D U unmerged, deleted by us | |
121 | A A unmerged, both added | |
122 | U U unmerged, both modified | |
123 | ------------------------------------------------- | |
124 | ? ? untracked | |
125 | ------------------------------------------------- | |
126 | ||
46077fa5 MG |
127 | If -b is used the short-format status is preceded by a line |
128 | ||
129 | ## branchname tracking info | |
130 | ||
e92e9cd3 ER |
131 | There is an alternate -z format recommended for machine parsing. In |
132 | that format, the status field is the same, but some other things | |
133 | change. First, the '->' is omitted from rename entries and the field | |
134 | order is reversed (e.g 'from -> to' becomes 'to from'). Second, a NUL | |
135 | (ASCII 0) follows each filename, replacing space as a field separator | |
136 | and the terminating newline (but a space still separates the status | |
137 | field from the first filename). Third, filenames containing special | |
138 | characters are not specially formatted; no quoting or | |
46077fa5 | 139 | backslash-escaping is performed. Fourth, there is no branch line. |
3f971fc4 | 140 | |
31fcd63c JH |
141 | CONFIGURATION |
142 | ------------- | |
143 | ||
144 | The command honors `color.status` (or `status.color` -- they | |
145 | mean the same thing and the latter is kept for backward | |
146 | compatibility) and `color.status.<slot>` configuration variables | |
147 | to colorize its output. | |
148 | ||
46f721c8 | 149 | If the config variable `status.relativePaths` is set to false, then all |
482a6c10 MG |
150 | paths shown are relative to the repository root, not to the current |
151 | directory. | |
46f721c8 | 152 | |
ac8d5afc | 153 | If `status.submodulesummary` is set to a non zero number or true (identical |
46b77a6b JK |
154 | to -1 or an unlimited number), the submodule summary will be enabled for |
155 | the long format and a summary of commits for modified submodules will be | |
156 | shown (see --summary-limit option of linkgit:git-submodule[1]). | |
ac8d5afc | 157 | |
56ae8df5 | 158 | SEE ALSO |
cedb8d5d | 159 | -------- |
5162e697 | 160 | linkgit:gitignore[5] |
31fcd63c | 161 | |
3f971fc4 JH |
162 | Author |
163 | ------ | |
9e4b7ab6 | 164 | Written by Junio C Hamano <gitster@pobox.com>. |
3f971fc4 JH |
165 | |
166 | Documentation | |
167 | -------------- | |
168 | Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. | |
169 | ||
170 | GIT | |
171 | --- | |
9e1f0a85 | 172 | Part of the linkgit:git[1] suite |