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