|
|
|
|
@ -8,8 +8,9 @@ git-status - Show the working tree status
|
|
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
|
--------
|
|
|
|
|
[verse]
|
|
|
|
|
'git status' [<options>] [--] [<pathspec>...]
|
|
|
|
|
|
|
|
|
|
[synopsis]
|
|
|
|
|
git status [<options>] [--] [<pathspec>...]
|
|
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
|
-----------
|
|
|
|
|
@ -18,57 +19,57 @@ 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
|
|
|
|
|
third are what you _could_ commit by running `git add` before running
|
|
|
|
|
`git commit`.
|
|
|
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
-s::
|
|
|
|
|
--short::
|
|
|
|
|
`-s`::
|
|
|
|
|
`--short`::
|
|
|
|
|
Give the output in the short-format.
|
|
|
|
|
|
|
|
|
|
-b::
|
|
|
|
|
--branch::
|
|
|
|
|
`-b`::
|
|
|
|
|
`--branch`::
|
|
|
|
|
Show the branch and tracking info even in short-format.
|
|
|
|
|
|
|
|
|
|
--show-stash::
|
|
|
|
|
`--show-stash`::
|
|
|
|
|
Show the number of entries currently stashed away.
|
|
|
|
|
|
|
|
|
|
--porcelain[=<version>]::
|
|
|
|
|
`--porcelain[=<version>]`::
|
|
|
|
|
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.
|
|
|
|
|
+
|
|
|
|
|
The version parameter is used to specify the format version.
|
|
|
|
|
This is optional and defaults to the original version 'v1' format.
|
|
|
|
|
The _<version>_ parameter is used to specify the format version.
|
|
|
|
|
This is optional and defaults to the original version `v1` format.
|
|
|
|
|
|
|
|
|
|
--long::
|
|
|
|
|
`--long`::
|
|
|
|
|
Give the output in the long-format. This is the default.
|
|
|
|
|
|
|
|
|
|
-v::
|
|
|
|
|
--verbose::
|
|
|
|
|
`-v`::
|
|
|
|
|
`--verbose`::
|
|
|
|
|
In addition to the names of files that have been changed, also
|
|
|
|
|
show the textual changes that are staged to be committed
|
|
|
|
|
(i.e., like the output of `git diff --cached`). If `-v` is specified
|
|
|
|
|
twice, then also show the changes in the working tree that
|
|
|
|
|
have not yet been staged (i.e., like the output of `git diff`).
|
|
|
|
|
|
|
|
|
|
-u[<mode>]::
|
|
|
|
|
--untracked-files[=<mode>]::
|
|
|
|
|
`-u[<mode>]`::
|
|
|
|
|
`--untracked-files[=<mode>]`::
|
|
|
|
|
Show untracked files.
|
|
|
|
|
+
|
|
|
|
|
--
|
|
|
|
|
The mode parameter is used to specify the handling of untracked files.
|
|
|
|
|
It is optional: it defaults to 'all', and if specified, it must be
|
|
|
|
|
It is optional: it defaults to `all`, and if specified, it must be
|
|
|
|
|
stuck to the option (e.g. `-uno`, but not `-u no`).
|
|
|
|
|
|
|
|
|
|
The possible options are:
|
|
|
|
|
|
|
|
|
|
- 'no' - Show no untracked files.
|
|
|
|
|
- 'normal' - Shows untracked files and directories.
|
|
|
|
|
- 'all' - Also shows individual files in untracked directories.
|
|
|
|
|
`no`:: Show no untracked files.
|
|
|
|
|
`normal`:: Show untracked files and directories.
|
|
|
|
|
`all`:: Also show individual files in untracked directories.
|
|
|
|
|
|
|
|
|
|
When `-u` option is not used, untracked files and directories are
|
|
|
|
|
shown (i.e. the same as specifying `normal`), to help you avoid
|
|
|
|
|
@ -82,76 +83,78 @@ return more quickly without showing untracked files.
|
|
|
|
|
All usual spellings for Boolean value `true` are taken as `normal`
|
|
|
|
|
and `false` as `no`.
|
|
|
|
|
|
|
|
|
|
The default can be changed using the status.showUntrackedFiles
|
|
|
|
|
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
|
|
|
|
|
`--ignore-submodules[=<when>]`::
|
|
|
|
|
Ignore changes to submodules when looking for changes. _<when>_ can be
|
|
|
|
|
either `none`, `untracked`, `dirty` or `all`, which is the default.
|
|
|
|
|
`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
|
|
|
|
|
`ignore` option in linkgit:git-config[1] or linkgit:gitmodules[5].
|
|
|
|
|
`untracked`;; 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,
|
|
|
|
|
content).
|
|
|
|
|
`dirty`;; ignore 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
|
|
|
|
|
the behavior before 1.7.0).
|
|
|
|
|
`all`;; hide all changes to submodules
|
|
|
|
|
(and suppresses the output of submodule summaries when the config option
|
|
|
|
|
`status.submoduleSummary` is set).
|
|
|
|
|
|
|
|
|
|
--ignored[=<mode>]::
|
|
|
|
|
`--ignored[=<mode>]`::
|
|
|
|
|
Show ignored files as well.
|
|
|
|
|
+
|
|
|
|
|
--
|
|
|
|
|
The mode parameter is used to specify the handling of ignored files.
|
|
|
|
|
It is optional: it defaults to 'traditional'.
|
|
|
|
|
It is optional: it defaults to `traditional`.
|
|
|
|
|
|
|
|
|
|
The possible options are:
|
|
|
|
|
|
|
|
|
|
- 'traditional' - Shows ignored files and directories, unless
|
|
|
|
|
--untracked-files=all is specified, in which case
|
|
|
|
|
individual files in ignored directories are
|
|
|
|
|
displayed.
|
|
|
|
|
- 'no' - Show no ignored files.
|
|
|
|
|
- 'matching' - Shows ignored files and directories matching an
|
|
|
|
|
ignore pattern.
|
|
|
|
|
|
|
|
|
|
When 'matching' mode is specified, paths that explicitly match an
|
|
|
|
|
`traditional`:: Show ignored files and directories, unless
|
|
|
|
|
`--untracked-files=all` is specified, in which case
|
|
|
|
|
individual files in ignored directories are
|
|
|
|
|
displayed.
|
|
|
|
|
`no`:: Show no ignored files.
|
|
|
|
|
`matching`:: Show ignored files and directories matching an
|
|
|
|
|
ignore pattern.
|
|
|
|
|
+
|
|
|
|
|
Paths that explicitly match an
|
|
|
|
|
ignored pattern are shown. If a directory matches an ignore pattern,
|
|
|
|
|
then it is shown, but not paths contained in the ignored directory. If
|
|
|
|
|
a directory does not match an ignore pattern, but all contents are
|
|
|
|
|
ignored, then the directory is not shown, but all contents are shown.
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
-z::
|
|
|
|
|
Terminate entries with NUL, instead of LF. This implies
|
|
|
|
|
`-z`::
|
|
|
|
|
Terminate entries with _NUL_, instead of _LF_. This implies
|
|
|
|
|
the `--porcelain=v1` output format if no other format is given.
|
|
|
|
|
|
|
|
|
|
--column[=<options>]::
|
|
|
|
|
--no-column::
|
|
|
|
|
`--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'
|
|
|
|
|
without options are equivalent to `always` and `never`
|
|
|
|
|
respectively.
|
|
|
|
|
|
|
|
|
|
--ahead-behind::
|
|
|
|
|
--no-ahead-behind::
|
|
|
|
|
`--ahead-behind`::
|
|
|
|
|
`--no-ahead-behind`::
|
|
|
|
|
Display or do not display detailed ahead/behind counts for the
|
|
|
|
|
branch relative to its upstream branch. Defaults to true.
|
|
|
|
|
branch relative to its upstream branch. Defaults to `true`.
|
|
|
|
|
|
|
|
|
|
--renames::
|
|
|
|
|
--no-renames::
|
|
|
|
|
`--renames`::
|
|
|
|
|
`--no-renames`::
|
|
|
|
|
Turn on/off rename detection regardless of user configuration.
|
|
|
|
|
See also linkgit:git-diff[1] `--no-renames`.
|
|
|
|
|
|
|
|
|
|
--find-renames[=<n>]::
|
|
|
|
|
`--find-renames[=<n>]`::
|
|
|
|
|
Turn on rename detection, optionally setting the similarity
|
|
|
|
|
threshold.
|
|
|
|
|
See also linkgit:git-diff[1] `--find-renames`.
|
|
|
|
|
|
|
|
|
|
<pathspec>...::
|
|
|
|
|
`<pathspec>...`::
|
|
|
|
|
See the 'pathspec' entry in linkgit:gitglossary[7].
|
|
|
|
|
|
|
|
|
|
OUTPUT
|
|
|
|
|
@ -173,12 +176,12 @@ Short Format
|
|
|
|
|
In the short-format, the status of each path is shown as one of these
|
|
|
|
|
forms
|
|
|
|
|
|
|
|
|
|
XY PATH
|
|
|
|
|
XY ORIG_PATH -> PATH
|
|
|
|
|
<xy> <path>
|
|
|
|
|
<xy> <orig-path> -> <path>
|
|
|
|
|
|
|
|
|
|
where `ORIG_PATH` is where the renamed/copied contents came
|
|
|
|
|
from. `ORIG_PATH` is only shown when the entry is renamed or
|
|
|
|
|
copied. The `XY` is a two-letter status code.
|
|
|
|
|
where _<orig-path>_ is where the renamed/copied contents came
|
|
|
|
|
from. _<orig-path>_ is only shown when the entry is renamed or
|
|
|
|
|
copied. The _<xy>_ is a two-letter status code `XY`.
|
|
|
|
|
|
|
|
|
|
The fields (including the `->`) are separated from each other by a
|
|
|
|
|
single space. If a filename contains whitespace or other nonprintable
|
|
|
|
|
@ -187,7 +190,7 @@ literal: surrounded by ASCII double quote (34) characters, and with
|
|
|
|
|
interior special characters backslash-escaped.
|
|
|
|
|
|
|
|
|
|
There are three different types of states that are shown using this format, and
|
|
|
|
|
each one uses the `XY` syntax differently:
|
|
|
|
|
each one uses the _<xy>_ syntax differently:
|
|
|
|
|
|
|
|
|
|
* When a merge is occurring and the merge was successful, or outside of a merge
|
|
|
|
|
situation, `X` shows the status of the index and `Y` shows the status of the
|
|
|
|
|
@ -207,60 +210,59 @@ In the following table, these three classes are shown in separate sections, and
|
|
|
|
|
these characters are used for `X` and `Y` fields for the first two sections that
|
|
|
|
|
show tracked paths:
|
|
|
|
|
|
|
|
|
|
* ' ' = unmodified
|
|
|
|
|
* 'M' = modified
|
|
|
|
|
* 'T' = file type changed (regular file, symbolic link or submodule)
|
|
|
|
|
* 'A' = added
|
|
|
|
|
* 'D' = deleted
|
|
|
|
|
* 'R' = renamed
|
|
|
|
|
* 'C' = copied (if config option status.renames is set to "copies")
|
|
|
|
|
* 'U' = updated but unmerged
|
|
|
|
|
' ':: unmodified
|
|
|
|
|
`M`:: modified
|
|
|
|
|
`T`:: file type changed (regular file, symbolic link or submodule)
|
|
|
|
|
`A`:: added
|
|
|
|
|
`D`:: deleted
|
|
|
|
|
`R`:: renamed
|
|
|
|
|
`C`:: copied (if config option status.renames is set to "copies")
|
|
|
|
|
`U`:: updated but unmerged
|
|
|
|
|
|
|
|
|
|
....
|
|
|
|
|
X Y Meaning
|
|
|
|
|
-------------------------------------------------
|
|
|
|
|
[AMD] not updated
|
|
|
|
|
M [ MTD] updated in index
|
|
|
|
|
T [ MTD] type changed in index
|
|
|
|
|
A [ MTD] added to index
|
|
|
|
|
D deleted from index
|
|
|
|
|
R [ MTD] renamed in index
|
|
|
|
|
C [ MTD] copied in index
|
|
|
|
|
[MTARC] index and work tree matches
|
|
|
|
|
[ MTARC] M work tree changed since index
|
|
|
|
|
[ MTARC] T type changed in work tree since index
|
|
|
|
|
[ MTARC] D deleted in work tree
|
|
|
|
|
R renamed in work tree
|
|
|
|
|
C copied 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
|
|
|
|
|
-------------------------------------------------
|
|
|
|
|
....
|
|
|
|
|
[cols="^1m,^1m,<2",options="header"]
|
|
|
|
|
|===
|
|
|
|
|
|X | Y |Meaning
|
|
|
|
|
| |[AMD] |not updated
|
|
|
|
|
|M |[ MTD] |updated in index
|
|
|
|
|
|T |[ MTD] |type changed in index
|
|
|
|
|
|A |[ MTD] |added to index
|
|
|
|
|
|D | |deleted from index
|
|
|
|
|
|R |[ MTD] |renamed in index
|
|
|
|
|
|C |[ MTD] |copied in index
|
|
|
|
|
|[MTARC] | |index and work tree matches
|
|
|
|
|
|[ MTARC] |M |work tree changed since index
|
|
|
|
|
|[ MTARC] |T |type changed in work tree since index
|
|
|
|
|
|[ MTARC] |D |deleted in work tree
|
|
|
|
|
| |R |renamed in work tree
|
|
|
|
|
| |C |copied 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
|
|
|
|
|
|===
|
|
|
|
|
|
|
|
|
|
Submodules have more state and instead report
|
|
|
|
|
|
|
|
|
|
* 'M' = the submodule has a different HEAD than recorded in the index
|
|
|
|
|
* 'm' = the submodule has modified content
|
|
|
|
|
* '?' = the submodule has untracked files
|
|
|
|
|
`M`:: the submodule has a different HEAD than recorded in the index
|
|
|
|
|
`m`:: the submodule has modified content
|
|
|
|
|
`?`:: the submodule has untracked files
|
|
|
|
|
|
|
|
|
|
This is since modified content or untracked files in a submodule cannot be added
|
|
|
|
|
via `git add` in the superproject to prepare a commit.
|
|
|
|
|
|
|
|
|
|
'm' and '?' are applied recursively. For example if a nested submodule
|
|
|
|
|
in a submodule contains an untracked file, this is reported as '?' as well.
|
|
|
|
|
`m` and `?` are applied recursively. For example if a nested submodule
|
|
|
|
|
in a submodule contains an untracked file, this is reported as `?` as well.
|
|
|
|
|
|
|
|
|
|
If -b is used the short-format status is preceded by a line
|
|
|
|
|
If `-b` is used the short-format status is preceded by a line
|
|
|
|
|
|
|
|
|
|
[synopsis]
|
|
|
|
|
{empty}## <branchname> <tracking-info>
|
|
|
|
|
|
|
|
|
|
## branchname tracking info
|
|
|
|
|
|
|
|
|
|
Porcelain Format Version 1
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
@ -271,16 +273,16 @@ 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
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
@ -296,7 +298,7 @@ Version 2 format adds more detailed information about the state of
|
|
|
|
|
the worktree and changed items. Version 2 also defines an extensible
|
|
|
|
|
set of easy to parse optional headers.
|
|
|
|
|
|
|
|
|
|
Header lines start with "#" and are added in response to specific
|
|
|
|
|
Header lines start with `#` and are added in response to specific
|
|
|
|
|
command line arguments. Parsers should ignore headers they
|
|
|
|
|
don't recognize.
|
|
|
|
|
|
|
|
|
|
@ -306,16 +308,15 @@ Branch Headers
|
|
|
|
|
If `--branch` is given, a series of header lines are printed with
|
|
|
|
|
information about the current branch.
|
|
|
|
|
|
|
|
|
|
....
|
|
|
|
|
Line Notes
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
# branch.oid <commit> | (initial) Current commit.
|
|
|
|
|
# branch.head <branch> | (detached) Current branch.
|
|
|
|
|
# branch.upstream <upstream-branch> If upstream is set.
|
|
|
|
|
# branch.ab +<ahead> -<behind> If upstream is set and
|
|
|
|
|
the commit is present.
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
....
|
|
|
|
|
[cols="<1,<1",options="header"]
|
|
|
|
|
|===
|
|
|
|
|
|Line |Notes
|
|
|
|
|
|`# branch.oid <commit> \| (initial)` |Current commit.
|
|
|
|
|
|`# branch.head <branch> \| (detached)` |Current branch.
|
|
|
|
|
|`# branch.upstream <upstream-branch>` |If upstream is set.
|
|
|
|
|
|`# branch.ab +<ahead> -<behind>` |If upstream is set and
|
|
|
|
|
the commit is present.
|
|
|
|
|
|===
|
|
|
|
|
|
|
|
|
|
Stash Information
|
|
|
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
|
@ -336,66 +337,73 @@ line types in any order.
|
|
|
|
|
|
|
|
|
|
Ordinary changed entries have the following format:
|
|
|
|
|
|
|
|
|
|
1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path>
|
|
|
|
|
[synopsis]
|
|
|
|
|
1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path>
|
|
|
|
|
|
|
|
|
|
Renamed or copied entries have the following format:
|
|
|
|
|
|
|
|
|
|
2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath>
|
|
|
|
|
[synopsis]
|
|
|
|
|
2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath>
|
|
|
|
|
|
|
|
|
|
....
|
|
|
|
|
Field Meaning
|
|
|
|
|
--------------------------------------------------------
|
|
|
|
|
<XY> A 2 character field containing the staged and
|
|
|
|
|
unstaged XY values described in the short format,
|
|
|
|
|
with unchanged indicated by a "." rather than
|
|
|
|
|
a space.
|
|
|
|
|
<sub> A 4 character field describing the submodule state.
|
|
|
|
|
"N..." when the entry is not a submodule.
|
|
|
|
|
"S<c><m><u>" when the entry is a submodule.
|
|
|
|
|
<c> is "C" if the commit changed; otherwise ".".
|
|
|
|
|
<m> is "M" if it has tracked changes; otherwise ".".
|
|
|
|
|
<u> is "U" if there are untracked changes; otherwise ".".
|
|
|
|
|
<mH> The octal file mode in HEAD.
|
|
|
|
|
<mI> The octal file mode in the index.
|
|
|
|
|
<mW> The octal file mode in the worktree.
|
|
|
|
|
<hH> The object name in HEAD.
|
|
|
|
|
<hI> The object name in the index.
|
|
|
|
|
<X><score> The rename or copy score (denoting the percentage
|
|
|
|
|
of similarity between the source and target of the
|
|
|
|
|
move or copy). For example "R100" or "C75".
|
|
|
|
|
<path> The pathname. In a renamed/copied entry, this
|
|
|
|
|
is the target path.
|
|
|
|
|
<sep> When the `-z` option is used, the 2 pathnames are separated
|
|
|
|
|
with a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09)
|
|
|
|
|
byte separates them.
|
|
|
|
|
<origPath> The pathname in the commit at HEAD or in the index.
|
|
|
|
|
This is only present in a renamed/copied entry, and
|
|
|
|
|
tells where the renamed/copied contents came from.
|
|
|
|
|
--------------------------------------------------------
|
|
|
|
|
....
|
|
|
|
|
[cols="<1,<1a",options="header"]
|
|
|
|
|
|===
|
|
|
|
|
|Field | Meaning
|
|
|
|
|
|
|
|
|
|
|_<XY>_
|
|
|
|
|
|A 2 character field containing the staged and
|
|
|
|
|
unstaged XY values described in the short format,
|
|
|
|
|
with unchanged indicated by a "." rather than
|
|
|
|
|
a space.
|
|
|
|
|
|_<sub>_
|
|
|
|
|
|A 4 character field describing the submodule state.
|
|
|
|
|
"N..." when the entry is not a submodule.
|
|
|
|
|
`S<c><m><u>` when the entry is a submodule.
|
|
|
|
|
|
|
|
|
|
* _<c>_ is "C" if the commit changed; otherwise ".".
|
|
|
|
|
* _<m>_ is "M" if it has tracked changes; otherwise ".".
|
|
|
|
|
* _<u>_ is "U" if there are untracked changes; otherwise ".".
|
|
|
|
|
|_<mH>_ |The octal file mode in HEAD.
|
|
|
|
|
|_<mI>_ |The octal file mode in the index.
|
|
|
|
|
|_<mW>_ |The octal file mode in the worktree.
|
|
|
|
|
|_<hH>_ |The object name in HEAD.
|
|
|
|
|
|_<hI>_ |The object name in the index.
|
|
|
|
|
|_<X><score>_ |The rename or copy score (denoting the percentage
|
|
|
|
|
of similarity between the source and target of the
|
|
|
|
|
move or copy). For example "R100" or "C75".
|
|
|
|
|
|_<path>_
|
|
|
|
|
|The pathname. In a renamed/copied entry, this is the target path.
|
|
|
|
|
|_<sep>_
|
|
|
|
|
|When the `-z` option is used, the 2 pathnames are separated
|
|
|
|
|
with a _NUL_ (ASCII 0x00) byte; otherwise, a _TAB_ (ASCII 0x09)
|
|
|
|
|
byte separates them.
|
|
|
|
|
|_<origPath>_
|
|
|
|
|
|The pathname in the commit at HEAD or in the index.
|
|
|
|
|
This is only present in a renamed/copied entry, and
|
|
|
|
|
tells where the renamed/copied contents came from.
|
|
|
|
|
|===
|
|
|
|
|
|
|
|
|
|
Unmerged entries have the following format; the first character is
|
|
|
|
|
a "u" to distinguish from ordinary changed entries.
|
|
|
|
|
|
|
|
|
|
u <XY> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path>
|
|
|
|
|
[synopsis]
|
|
|
|
|
u <XY> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path>
|
|
|
|
|
|
|
|
|
|
....
|
|
|
|
|
Field Meaning
|
|
|
|
|
--------------------------------------------------------
|
|
|
|
|
<XY> A 2 character field describing the conflict type
|
|
|
|
|
[cols="<1,<1a",options="header"]
|
|
|
|
|
|===
|
|
|
|
|
|Field |Meaning
|
|
|
|
|
|_<XY>_ |A 2 character field describing the conflict type
|
|
|
|
|
as described in the short format.
|
|
|
|
|
<sub> A 4 character field describing the submodule state
|
|
|
|
|
|_<sub>_ |A 4 character field describing the submodule state
|
|
|
|
|
as described above.
|
|
|
|
|
<m1> The octal file mode in stage 1.
|
|
|
|
|
<m2> The octal file mode in stage 2.
|
|
|
|
|
<m3> The octal file mode in stage 3.
|
|
|
|
|
<mW> The octal file mode in the worktree.
|
|
|
|
|
<h1> The object name in stage 1.
|
|
|
|
|
<h2> The object name in stage 2.
|
|
|
|
|
<h3> The object name in stage 3.
|
|
|
|
|
<path> The pathname.
|
|
|
|
|
--------------------------------------------------------
|
|
|
|
|
....
|
|
|
|
|
|_<m1>_ |The octal file mode in stage 1.
|
|
|
|
|
|_<m2>_ |The octal file mode in stage 2.
|
|
|
|
|
|_<m3>_ |The octal file mode in stage 3.
|
|
|
|
|
|_<mW>_ |The octal file mode in the worktree.
|
|
|
|
|
|_<h1>_ |The object name in stage 1.
|
|
|
|
|
|_<h2>_ |The object name in stage 2.
|
|
|
|
|
|_<h3>_ |The object name in stage 3.
|
|
|
|
|
|_<path>_ |The pathname.
|
|
|
|
|
|===
|
|
|
|
|
|
|
|
|
|
Other Items
|
|
|
|
|
^^^^^^^^^^^
|
|
|
|
|
@ -416,7 +424,7 @@ Pathname Format Notes and -z
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
When the `-z` option is given, pathnames are printed as is and
|
|
|
|
|
without any quoting and lines are terminated with a NUL (ASCII 0x00)
|
|
|
|
|
without any quoting and lines are terminated with a _NUL_ (ASCII 0x00)
|
|
|
|
|
byte.
|
|
|
|
|
|
|
|
|
|
Without the `-z` option, pathnames with "unusual" characters are
|
|
|
|
|
@ -439,11 +447,11 @@ 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]). Please note
|
|
|
|
|
shown (see `--summary-limit` option of linkgit:git-submodule[1]). Please note
|
|
|
|
|
that the summary output from the status command will be suppressed for all
|
|
|
|
|
submodules when `diff.ignoreSubmodules` is set to 'all' or only for those
|
|
|
|
|
submodules when `diff.ignoreSubmodules` is set to `all` or only for those
|
|
|
|
|
submodules where `submodule.<name>.ignore=all`. To also view the summary for
|
|
|
|
|
ignored submodules you can either use the --ignore-submodules=dirty command
|
|
|
|
|
ignored submodules you can either use the `--ignore-submodules=dirty` command
|
|
|
|
|
line option or the 'git submodule summary' command, which shows a similar
|
|
|
|
|
output but does not honor these settings.
|
|
|
|
|
|
|
|
|
|
@ -484,7 +492,7 @@ results, so it could be faster on subsequent runs.
|
|
|
|
|
setting this variable to `false` disables the warning message
|
|
|
|
|
given when enumerating untracked files takes more than 2
|
|
|
|
|
seconds. In a large project, it may take longer and the user
|
|
|
|
|
may have already accepted the trade off (e.g. using "-uno" may
|
|
|
|
|
may have already accepted the trade off (e.g. using `-uno` may
|
|
|
|
|
not be an acceptable option for the user), in which case, there
|
|
|
|
|
is no point issuing the warning message, and in such a case,
|
|
|
|
|
disabling the warning may be the best.
|
|
|
|
|
|