|  | git-status(1) | 
|  | ============= | 
|  |  | 
|  | NAME | 
|  | ---- | 
|  | git-status - Show the working tree status | 
|  |  | 
|  |  | 
|  | SYNOPSIS | 
|  | -------- | 
|  | 'git status' [<options>...] [--] [<pathspec>...] | 
|  |  | 
|  | DESCRIPTION | 
|  | ----------- | 
|  | Displays paths that have differences between the index file and the | 
|  | current HEAD commit, paths that have differences between the working | 
|  | tree and the index file, and paths in the working tree that are not | 
|  | tracked by git (and are not ignored by linkgit:gitignore[5]). The first | 
|  | are what you _would_ commit by running `git commit`; the second and | 
|  | third are what you _could_ commit by running 'git add' before running | 
|  | `git commit`. | 
|  |  | 
|  | OPTIONS | 
|  | ------- | 
|  |  | 
|  | -s:: | 
|  | --short:: | 
|  | Give the output in the short-format. | 
|  |  | 
|  | -b:: | 
|  | --branch:: | 
|  | Show the branch and tracking info even in short-format. | 
|  |  | 
|  | --porcelain:: | 
|  | Give the output in a stable, easy-to-parse format for scripts. | 
|  | Currently this is identical to --short output, but is guaranteed | 
|  | not to change in the future, making it safe for scripts. | 
|  |  | 
|  | -u[<mode>]:: | 
|  | --untracked-files[=<mode>]:: | 
|  | Show untracked files (Default: 'all'). | 
|  | + | 
|  | The mode parameter is optional, and is used to specify | 
|  | the handling of untracked files. The possible options are: | 
|  | + | 
|  | -- | 
|  | - 'no'     - Show no untracked files | 
|  | - 'normal' - Shows untracked files and directories | 
|  | - 'all'    - Also shows individual files in untracked directories. | 
|  | -- | 
|  | + | 
|  | See linkgit:git-config[1] for configuration variable | 
|  | used to change the default for when the option is not | 
|  | specified. | 
|  |  | 
|  | --ignore-submodules[=<when>]:: | 
|  | Ignore changes to submodules when looking for changes. <when> can be | 
|  | either "none", "untracked", "dirty" or "all", which is the default. | 
|  | Using "none" will consider the submodule modified when it either contains | 
|  | untracked or modified files or its HEAD differs from the commit recorded | 
|  | in the superproject and can be used to override any settings of the | 
|  | 'ignore' option in linkgit:git-config[1] or linkgit:gitmodules[5]. When | 
|  | "untracked" is used submodules are not considered dirty when they only | 
|  | contain untracked content (but they are still scanned for modified | 
|  | content). Using "dirty" ignores all changes to the work tree of submodules, | 
|  | only changes to the commits stored in the superproject are shown (this was | 
|  | the behavior before 1.7.0). Using "all" hides all changes to submodules | 
|  | (and suppresses the output of submodule summaries when the config option | 
|  | `status.submodulesummary` is set). | 
|  |  | 
|  | -z:: | 
|  | Terminate entries with NUL, instead of LF.  This implies | 
|  | the `--porcelain` output format if no other format is given. | 
|  |  | 
|  |  | 
|  | OUTPUT | 
|  | ------ | 
|  | The output from this command is designed to be used as a commit | 
|  | template comment, and all the output lines are prefixed with '#'. | 
|  | The default, long format, is designed to be human readable, | 
|  | verbose and descriptive.  They are subject to change in any time. | 
|  |  | 
|  | The paths mentioned in the output, unlike many other git commands, are | 
|  | made relative to the current directory if you are working in a | 
|  | subdirectory (this is on purpose, to help cutting and pasting). See | 
|  | the status.relativePaths config option below. | 
|  |  | 
|  | In short-format, the status of each path is shown as | 
|  |  | 
|  | XY PATH1 -> PATH2 | 
|  |  | 
|  | where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is | 
|  | shown only when `PATH1` corresponds to a different path in the | 
|  | index/worktree (i.e. the file is renamed). The 'XY' is a two-letter | 
|  | status code. | 
|  |  | 
|  | The fields (including the `->`) are separated from each other by a | 
|  | single space. If a filename contains whitespace or other nonprintable | 
|  | characters, that field will be quoted in the manner of a C string | 
|  | literal: surrounded by ASCII double quote (34) characters, and with | 
|  | interior special characters backslash-escaped. | 
|  |  | 
|  | For paths with merge conflicts, `X` and 'Y' show the modification | 
|  | states of each side of the merge. For paths that do not have merge | 
|  | conflicts, `X` shows the status of the index, and `Y` shows the status | 
|  | of the work tree.  For untracked paths, `XY` are `??`.  Other status | 
|  | codes can be interpreted as follows: | 
|  |  | 
|  | * ' ' = unmodified | 
|  | * 'M' = modified | 
|  | * 'A' = added | 
|  | * 'D' = deleted | 
|  | * 'R' = renamed | 
|  | * 'C' = copied | 
|  | * 'U' = updated but unmerged | 
|  |  | 
|  | Ignored files are not listed. | 
|  |  | 
|  | X          Y     Meaning | 
|  | ------------------------------------------------- | 
|  | [MD]   not updated | 
|  | M        [ MD]   updated in index | 
|  | A        [ MD]   added to index | 
|  | D         [ M]   deleted from index | 
|  | R        [ MD]   renamed in index | 
|  | C        [ MD]   copied in index | 
|  | [MARC]           index and work tree matches | 
|  | [ MARC]     M    work tree changed since index | 
|  | [ MARC]     D    deleted in work tree | 
|  | ------------------------------------------------- | 
|  | D           D    unmerged, both deleted | 
|  | A           U    unmerged, added by us | 
|  | U           D    unmerged, deleted by them | 
|  | U           A    unmerged, added by them | 
|  | D           U    unmerged, deleted by us | 
|  | A           A    unmerged, both added | 
|  | U           U    unmerged, both modified | 
|  | ------------------------------------------------- | 
|  | ?           ?    untracked | 
|  | ------------------------------------------------- | 
|  |  | 
|  | If -b is used the short-format status is preceded by a line | 
|  |  | 
|  | ## branchname tracking info | 
|  |  | 
|  | There is an alternate -z format recommended for machine parsing.  In | 
|  | that format, the status field is the same, but some other things | 
|  | change.  First, the '->' is omitted from rename entries and the field | 
|  | order is reversed (e.g 'from -> to' becomes 'to from'). Second, a NUL | 
|  | (ASCII 0) follows each filename, replacing space as a field separator | 
|  | and the terminating newline (but a space still separates the status | 
|  | field from the first filename).  Third, filenames containing special | 
|  | characters are not specially formatted; no quoting or | 
|  | backslash-escaping is performed. Fourth, there is no branch line. | 
|  |  | 
|  | CONFIGURATION | 
|  | ------------- | 
|  |  | 
|  | The command honors `color.status` (or `status.color` -- they | 
|  | mean the same thing and the latter is kept for backward | 
|  | compatibility) and `color.status.<slot>` configuration variables | 
|  | to colorize its output. | 
|  |  | 
|  | If the config variable `status.relativePaths` is set to false, then all | 
|  | paths shown are relative to the repository root, not to the current | 
|  | directory. | 
|  |  | 
|  | If `status.submodulesummary` is set to a non zero number or true (identical | 
|  | to -1 or an unlimited number), the submodule summary will be enabled for | 
|  | the long format and a summary of commits for modified submodules will be | 
|  | shown (see --summary-limit option of linkgit:git-submodule[1]). | 
|  |  | 
|  | SEE ALSO | 
|  | -------- | 
|  | linkgit:gitignore[5] | 
|  |  | 
|  | Author | 
|  | ------ | 
|  | Written by Junio C Hamano <gitster@pobox.com>. | 
|  |  | 
|  | Documentation | 
|  | -------------- | 
|  | Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. | 
|  |  | 
|  | GIT | 
|  | --- | 
|  | Part of the linkgit:git[1] suite |