]>
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 | ||
6f157871 JK |
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 | ||
9e4b7ab6 JH |
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. | |
51 | ||
46a958b3 JL |
52 | --ignore-submodules[=<when>]:: |
53 | Ignore changes to submodules when looking for changes. <when> can be | |
54 | either "untracked", "dirty" or "all", which is the default. When | |
55 | "untracked" is used submodules are not considered dirty when they only | |
56 | contain untracked content (but they are still scanned for modified | |
57 | content). Using "dirty" ignores all changes to the work tree of submodules, | |
58 | only changes to the commits stored in the superproject are shown (this was | |
59 | the behavior before 1.7.0). Using "all" hides all changes to submodules | |
60 | (and suppresses the output of submodule summaries when the config option | |
61 | `status.submodulesummary` is set). | |
62 | ||
9e4b7ab6 | 63 | -z:: |
6f157871 JK |
64 | Terminate entries with NUL, instead of LF. This implies |
65 | the `--porcelain` output format if no other format is given. | |
2099bca9 | 66 | |
3f971fc4 JH |
67 | |
68 | OUTPUT | |
69 | ------ | |
70 | The output from this command is designed to be used as a commit | |
2099bca9 | 71 | template comment, and all the output lines are prefixed with '#'. |
9e4b7ab6 JH |
72 | The default, long format, is designed to be human readable, |
73 | verbose and descriptive. They are subject to change in any time. | |
3f971fc4 | 74 | |
c7860507 | 75 | The paths mentioned in the output, unlike many other git commands, are |
2099bca9 | 76 | made relative to the current directory if you are working in a |
46f721c8 JK |
77 | subdirectory (this is on purpose, to help cutting and pasting). See |
78 | the status.relativePaths config option below. | |
c7860507 | 79 | |
9e4b7ab6 JH |
80 | In short-format, the status of each path is shown as |
81 | ||
82 | XY PATH1 -> PATH2 | |
83 | ||
84 | where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is | |
85 | shown only when `PATH1` corresponds to a different path in the | |
e92e9cd3 ER |
86 | index/worktree (i.e. the file is renamed). The 'XY' is a two-letter |
87 | status code. | |
88 | ||
89 | The fields (including the `->`) are separated from each other by a | |
90 | single space. If a filename contains whitespace or other nonprintable | |
91 | characters, that field will be quoted in the manner of a C string | |
92 | literal: surrounded by ASCII double quote (34) characters, and with | |
93 | interior special characters backslash-escaped. | |
94 | ||
95 | For paths with merge conflicts, `X` and 'Y' show the modification | |
96 | states of each side of the merge. For paths that do not have merge | |
97 | conflicts, `X` shows the status of the index, and `Y` shows the status | |
98 | of the work tree. For untracked paths, `XY` are `??`. Other status | |
99 | codes can be interpreted as follows: | |
100 | ||
101 | * ' ' = unmodified | |
102 | * 'M' = modified | |
103 | * 'A' = added | |
104 | * 'D' = deleted | |
105 | * 'R' = renamed | |
106 | * 'C' = copied | |
107 | * 'U' = updated but unmerged | |
108 | ||
109 | Ignored files are not listed. | |
9e4b7ab6 JH |
110 | |
111 | X Y Meaning | |
112 | ------------------------------------------------- | |
113 | [MD] not updated | |
114 | M [ MD] updated in index | |
115 | A [ MD] added to index | |
e92e9cd3 | 116 | D [ M] deleted from index |
9e4b7ab6 JH |
117 | R [ MD] renamed in index |
118 | C [ MD] copied in index | |
119 | [MARC] index and work tree matches | |
120 | [ MARC] M work tree changed since index | |
121 | [ MARC] D deleted in work tree | |
122 | ------------------------------------------------- | |
123 | D D unmerged, both deleted | |
124 | A U unmerged, added by us | |
125 | U D unmerged, deleted by them | |
126 | U A unmerged, added by them | |
127 | D U unmerged, deleted by us | |
128 | A A unmerged, both added | |
129 | U U unmerged, both modified | |
130 | ------------------------------------------------- | |
131 | ? ? untracked | |
132 | ------------------------------------------------- | |
133 | ||
e92e9cd3 ER |
134 | There is an alternate -z format recommended for machine parsing. In |
135 | that format, the status field is the same, but some other things | |
136 | change. First, the '->' is omitted from rename entries and the field | |
137 | order is reversed (e.g 'from -> to' becomes 'to from'). Second, a NUL | |
138 | (ASCII 0) follows each filename, replacing space as a field separator | |
139 | and the terminating newline (but a space still separates the status | |
140 | field from the first filename). Third, filenames containing special | |
141 | characters are not specially formatted; no quoting or | |
142 | backslash-escaping is performed. | |
3f971fc4 | 143 | |
31fcd63c JH |
144 | CONFIGURATION |
145 | ------------- | |
146 | ||
147 | The command honors `color.status` (or `status.color` -- they | |
148 | mean the same thing and the latter is kept for backward | |
149 | compatibility) and `color.status.<slot>` configuration variables | |
150 | to colorize its output. | |
151 | ||
46f721c8 | 152 | If the config variable `status.relativePaths` is set to false, then all |
482a6c10 MG |
153 | paths shown are relative to the repository root, not to the current |
154 | directory. | |
46f721c8 | 155 | |
ac8d5afc | 156 | If `status.submodulesummary` is set to a non zero number or true (identical |
46b77a6b JK |
157 | to -1 or an unlimited number), the submodule summary will be enabled for |
158 | the long format and a summary of commits for modified submodules will be | |
159 | shown (see --summary-limit option of linkgit:git-submodule[1]). | |
ac8d5afc | 160 | |
56ae8df5 | 161 | SEE ALSO |
cedb8d5d | 162 | -------- |
5162e697 | 163 | linkgit:gitignore[5] |
31fcd63c | 164 | |
3f971fc4 JH |
165 | Author |
166 | ------ | |
9e4b7ab6 | 167 | Written by Junio C Hamano <gitster@pobox.com>. |
3f971fc4 JH |
168 | |
169 | Documentation | |
170 | -------------- | |
171 | Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. | |
172 | ||
173 | GIT | |
174 | --- | |
9e1f0a85 | 175 | Part of the linkgit:git[1] suite |