You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
7.4 KiB
212 lines
7.4 KiB
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. |
|
|
|
--column[=<options>]:: |
|
--no-column:: |
|
Display untracked files in columns. See configuration variable |
|
column.status for option syntax.`--column` and `--no-column` |
|
without options are equivalent to 'always' and 'never' |
|
respectively. |
|
|
|
|
|
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. |
|
|
|
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
|
|
|