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-z:: 57 Terminate entries with NUL, instead of LF. This implies 58 the `--porcelain` output format if no other format is given. 59 60 61OUTPUT 62------ 63The output from this command is designed to be used as a commit 64template comment, and all the output lines are prefixed with '#'. 65The default, long format, is designed to be human readable, 66verbose and descriptive. They are subject to change in any time. 67 68The paths mentioned in the output, unlike many other git commands, are 69made relative to the current directory if you are working in a 70subdirectory (this is on purpose, to help cutting and pasting). See 71the status.relativePaths config option below. 72 73In short-format, the status of each path is shown as 74 75 XY PATH1 -> PATH2 76 77where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is 78shown only when `PATH1` corresponds to a different path in the 79index/worktree (i.e. the file is renamed). The 'XY' is a two-letter 80status code. 81 82The fields (including the `->`) are separated from each other by a 83single space. If a filename contains whitespace or other nonprintable 84characters, that field will be quoted in the manner of a C string 85literal: surrounded by ASCII double quote (34) characters, and with 86interior special characters backslash-escaped. 87 88For paths with merge conflicts, `X` and 'Y' show the modification 89states of each side of the merge. For paths that do not have merge 90conflicts, `X` shows the status of the index, and `Y` shows the status 91of the work tree. For untracked paths, `XY` are `??`. Other status 92codes 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 102Ignored files are not listed. 103 104 X Y Meaning 105 ------------------------------------------------- 106 [MD] not updated 107 M [ MD] updated in index 108 A [ MD] added to index 109 D [ M] deleted from index 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 127If -b is used the short-format status is preceded by a line 128 129## branchname tracking info 130 131There is an alternate -z format recommended for machine parsing. In 132that format, the status field is the same, but some other things 133change. First, the '->' is omitted from rename entries and the field 134order is reversed (e.g 'from -> to' becomes 'to from'). Second, a NUL 135(ASCII 0) follows each filename, replacing space as a field separator 136and the terminating newline (but a space still separates the status 137field from the first filename). Third, filenames containing special 138characters are not specially formatted; no quoting or 139backslash-escaping is performed. Fourth, there is no branch line. 140 141CONFIGURATION 142------------- 143 144The command honors `color.status` (or `status.color` -- they 145mean the same thing and the latter is kept for backward 146compatibility) and `color.status.<slot>` configuration variables 147to colorize its output. 148 149If the config variable `status.relativePaths` is set to false, then all 150paths shown are relative to the repository root, not to the current 151directory. 152 153If `status.submodulesummary` is set to a non zero number or true (identical 154to -1 or an unlimited number), the submodule summary will be enabled for 155the long format and a summary of commits for modified submodules will be 156shown (see --summary-limit option of linkgit:git-submodule[1]). 157 158SEE ALSO 159-------- 160linkgit:gitignore[5] 161 162Author 163------ 164Written by Junio C Hamano <gitster@pobox.com>. 165 166Documentation 167-------------- 168Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. 169 170GIT 171--- 172Part of the linkgit:git[1] suite