@@ -32,9 +32,10 @@ OPTIONS
32
32
Show the branch and tracking info even in short-format.
33
33
34
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.
35
+ Give the output in an easy-to-parse format for scripts.
36
+ This is similar to the short output, but will remain stable
37
+ across git versions and regardless of user configuration. See
38
+ below for details.
38
39
39
40
-u[<mode>]::
40
41
--untracked-files[=<mode>]::
@@ -78,23 +79,27 @@ OUTPUT
78
79
The output from this command is designed to be used as a commit
79
80
template comment, and all the output lines are prefixed with '#'.
80
81
The default, long format, is designed to be human readable,
81
- verbose and descriptive. They are subject to change in any time.
82
+ verbose and descriptive. Its contents and format are subject to change
83
+ at any time.
82
84
83
85
The paths mentioned in the output, unlike many other git commands, are
84
86
made relative to the current directory if you are working in a
85
87
subdirectory (this is on purpose, to help cutting and pasting). See
86
88
the status.relativePaths config option below.
87
89
88
- In short-format, the status of each path is shown as
90
+ Short Format
91
+ ~~~~~~~~~~~~
92
+
93
+ In the short-format, the status of each path is shown as
89
94
90
95
XY PATH1 -> PATH2
91
96
92
- where `PATH1` is the path in the `HEAD`, and ` -> PATH2` part is
97
+ where `PATH1` is the path in the `HEAD`, and the ` \ -> PATH2` part is
93
98
shown only when `PATH1` corresponds to a different path in the
94
99
index/worktree (i.e. the file is renamed). The 'XY' is a two-letter
95
100
status code.
96
101
97
- The fields (including the `->`) are separated from each other by a
102
+ The fields (including the `\ ->`) are separated from each other by a
98
103
single space. If a filename contains whitespace or other nonprintable
99
104
characters, that field will be quoted in the manner of a C string
100
105
literal: surrounded by ASCII double quote (34) characters, and with
@@ -143,10 +148,25 @@ If -b is used the short-format status is preceded by a line
143
148
144
149
## branchname tracking info
145
150
146
- There is an alternate -z format recommended for machine parsing. In
151
+ Porcelain Format
152
+ ~~~~~~~~~~~~~~~~
153
+
154
+ The porcelain format is similar to the short format, but is guaranteed
155
+ not to change in a backwards-incompatible way between git versions or
156
+ based on user configuration. This makes it ideal for parsing by scripts.
157
+ The description of the short format above also describes the porcelain
158
+ format, with a few exceptions:
159
+
160
+ 1. The user's color.status configuration is not respected; color will
161
+ always be off.
162
+
163
+ 2. The user's status.relativePaths configuration is not respected; paths
164
+ shown will always be relative to the repository root.
165
+
166
+ There is also an alternate -z format recommended for machine parsing. In
147
167
that format, the status field is the same, but some other things
148
- change. First, the '->' is omitted from rename entries and the field
149
- order is reversed (e.g 'from -> to' becomes 'to from'). Second, a NUL
168
+ change. First, the '\ ->' is omitted from rename entries and the field
169
+ order is reversed (e.g 'from \ -> to' becomes 'to from'). Second, a NUL
150
170
(ASCII 0) follows each filename, replacing space as a field separator
151
171
and the terminating newline (but a space still separates the status
152
172
field from the first filename). Third, filenames containing special
0 commit comments