206 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			206 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
git-status(1)
 | 
						|
=============
 | 
						|
 | 
						|
NAME
 | 
						|
----
 | 
						|
git-status - Show the working tree status
 | 
						|
 | 
						|
 | 
						|
SYNOPSIS
 | 
						|
--------
 | 
						|
[verse]
 | 
						|
'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 an easy-to-parse format for scripts.
 | 
						|
	This is similar to the short output, but will remain stable
 | 
						|
	across git versions and regardless of user configuration. See
 | 
						|
	below for details.
 | 
						|
 | 
						|
-u[<mode>]::
 | 
						|
--untracked-files[=<mode>]::
 | 
						|
	Show untracked files.
 | 
						|
+
 | 
						|
The mode parameter is optional (defaults to 'all'), and is used to
 | 
						|
specify the handling of untracked files; when -u is not used, the
 | 
						|
default is 'normal', i.e. show untracked files and directories.
 | 
						|
+
 | 
						|
The possible options are:
 | 
						|
+
 | 
						|
	- 'no'     - Show no untracked files
 | 
						|
	- 'normal' - Shows untracked files and directories
 | 
						|
	- 'all'    - Also shows individual files in untracked directories.
 | 
						|
+
 | 
						|
The default can be changed using the status.showUntrackedFiles
 | 
						|
configuration variable documented in linkgit:git-config[1].
 | 
						|
 | 
						|
--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).
 | 
						|
 | 
						|
--ignored::
 | 
						|
	Show ignored files as well.
 | 
						|
 | 
						|
-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.  Its contents and format are subject to change
 | 
						|
at 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.
 | 
						|
 | 
						|
Short Format
 | 
						|
~~~~~~~~~~~~
 | 
						|
 | 
						|
In the short-format, the status of each path is shown as
 | 
						|
 | 
						|
	XY PATH1 -> PATH2
 | 
						|
 | 
						|
where `PATH1` is the path in the `HEAD`, and the ` \-> 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, unless `--ignored` option is in effect,
 | 
						|
in which case `XY` are `!!`.
 | 
						|
 | 
						|
    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
 | 
						|
    !           !    ignored
 | 
						|
    -------------------------------------------------
 | 
						|
 | 
						|
If -b is used the short-format status is preceded by a line
 | 
						|
 | 
						|
## branchname tracking info
 | 
						|
 | 
						|
Porcelain Format
 | 
						|
~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
The porcelain format is similar to the short format, but is guaranteed
 | 
						|
not to change in a backwards-incompatible way between git versions or
 | 
						|
based on user configuration. This makes it ideal for parsing by scripts.
 | 
						|
The description of the short format above also describes the porcelain
 | 
						|
format, with a few exceptions:
 | 
						|
 | 
						|
1. The user's color.status configuration is not respected; color will
 | 
						|
   always be off.
 | 
						|
 | 
						|
2. The user's status.relativePaths configuration is not respected; paths
 | 
						|
   shown will always be relative to the repository root.
 | 
						|
 | 
						|
There is also 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]
 | 
						|
 | 
						|
GIT
 | 
						|
---
 | 
						|
Part of the linkgit:git[1] suite
 |