Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-status(1) |
| 2 | ============= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | 7c73c66 | 2007-01-19 00:37:50 | [diff] [blame] | 6 | git-status - Show the working tree status |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 | |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
Junio C Hamano | 15567bc | 2011-07-23 00:51:59 | [diff] [blame] | 11 | [verse] |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 12 | 'git status' [<options>...] [--] [<pathspec>...] |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 13 | |
| 14 | DESCRIPTION |
| 15 | ----------- |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 16 | Displays paths that have differences between the index file and the |
| 17 | current HEAD commit, paths that have differences between the working |
| 18 | tree and the index file, and paths in the working tree that are not |
Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 19 | tracked by Git (and are not ignored by linkgit:gitignore[5]). The first |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 20 | are what you _would_ commit by running `git commit`; the second and |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 21 | third are what you _could_ commit by running 'git add' before running |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 22 | `git commit`. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 23 | |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 24 | OPTIONS |
| 25 | ------- |
Junio C Hamano | 8fd5230 | 2006-08-10 00:18:08 | [diff] [blame] | 26 | |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 27 | -s:: |
| 28 | --short:: |
| 29 | Give the output in the short-format. |
| 30 | |
Junio C Hamano | f5de4cf | 2010-06-19 00:33:17 | [diff] [blame] | 31 | -b:: |
| 32 | --branch:: |
| 33 | Show the branch and tracking info even in short-format. |
| 34 | |
Junio C Hamano | 967cda7 | 2017-06-30 21:49:53 | [diff] [blame] | 35 | --show-stash:: |
| 36 | Show the number of entries currently stashed away. |
| 37 | |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 38 | --porcelain[=<version>]:: |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 39 | Give the output in an easy-to-parse format for scripts. |
| 40 | This is similar to the short output, but will remain stable |
Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 41 | across Git versions and regardless of user configuration. See |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 42 | below for details. |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 43 | + |
| 44 | The version parameter is used to specify the format version. |
| 45 | This is optional and defaults to the original version 'v1' format. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 46 | |
Junio C Hamano | a129545 | 2012-11-13 22:32:04 | [diff] [blame] | 47 | --long:: |
| 48 | Give the output in the long-format. This is the default. |
| 49 | |
Junio C Hamano | 8152abf | 2015-04-28 22:48:02 | [diff] [blame] | 50 | -v:: |
| 51 | --verbose:: |
| 52 | In addition to the names of files that have been changed, also |
| 53 | show the textual changes that are staged to be committed |
| 54 | (i.e., like the output of `git diff --cached`). If `-v` is specified |
| 55 | twice, then also show the changes in the working tree that |
| 56 | have not yet been staged (i.e., like the output of `git diff`). |
| 57 | |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 58 | -u[<mode>]:: |
| 59 | --untracked-files[=<mode>]:: |
Junio C Hamano | 36a4dbc | 2011-02-22 07:51:32 | [diff] [blame] | 60 | Show untracked files. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 61 | + |
Junio C Hamano | 1eb5609 | 2015-10-05 20:39:53 | [diff] [blame] | 62 | The mode parameter is used to specify the handling of untracked files. |
| 63 | It is optional: it defaults to 'all', and if specified, it must be |
| 64 | stuck to the option (e.g. `-uno`, but not `-u no`). |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 65 | + |
Junio C Hamano | 36a4dbc | 2011-02-22 07:51:32 | [diff] [blame] | 66 | The possible options are: |
| 67 | + |
Junio C Hamano | 5e7f131 | 2013-03-21 22:49:01 | [diff] [blame] | 68 | - 'no' - Show no untracked files. |
| 69 | - 'normal' - Shows untracked files and directories. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 70 | - 'all' - Also shows individual files in untracked directories. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 71 | + |
Junio C Hamano | 5e7f131 | 2013-03-21 22:49:01 | [diff] [blame] | 72 | When `-u` option is not used, untracked files and directories are |
| 73 | shown (i.e. the same as specifying `normal`), to help you avoid |
| 74 | forgetting to add newly created files. Because it takes extra work |
| 75 | to find untracked files in the filesystem, this mode may take some |
Junio C Hamano | c4e2a20 | 2015-05-26 21:38:47 | [diff] [blame] | 76 | time in a large working tree. |
| 77 | Consider enabling untracked cache and split index if supported (see |
| 78 | `git update-index --untracked-cache` and `git update-index |
| 79 | --split-index`), Otherwise you can use `no` to have `git status` |
Junio C Hamano | 5e7f131 | 2013-03-21 22:49:01 | [diff] [blame] | 80 | return more quickly without showing untracked files. |
| 81 | + |
Junio C Hamano | 36a4dbc | 2011-02-22 07:51:32 | [diff] [blame] | 82 | The default can be changed using the status.showUntrackedFiles |
| 83 | configuration variable documented in linkgit:git-config[1]. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 84 | |
Junio C Hamano | 7d44952 | 2010-07-01 00:08:51 | [diff] [blame] | 85 | --ignore-submodules[=<when>]:: |
| 86 | Ignore changes to submodules when looking for changes. <when> can be |
Junio C Hamano | 619596a | 2010-08-18 22:15:35 | [diff] [blame] | 87 | either "none", "untracked", "dirty" or "all", which is the default. |
| 88 | Using "none" will consider the submodule modified when it either contains |
| 89 | untracked or modified files or its HEAD differs from the commit recorded |
| 90 | in the superproject and can be used to override any settings of the |
| 91 | 'ignore' option in linkgit:git-config[1] or linkgit:gitmodules[5]. When |
Junio C Hamano | 7d44952 | 2010-07-01 00:08:51 | [diff] [blame] | 92 | "untracked" is used submodules are not considered dirty when they only |
| 93 | contain untracked content (but they are still scanned for modified |
| 94 | content). Using "dirty" ignores all changes to the work tree of submodules, |
| 95 | only changes to the commits stored in the superproject are shown (this was |
| 96 | the behavior before 1.7.0). Using "all" hides all changes to submodules |
| 97 | (and suppresses the output of submodule summaries when the config option |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 98 | `status.submoduleSummary` is set). |
Junio C Hamano | 7d44952 | 2010-07-01 00:08:51 | [diff] [blame] | 99 | |
Junio C Hamano | b72f603 | 2017-11-15 05:57:08 | [diff] [blame] | 100 | --ignored[=<mode>]:: |
Junio C Hamano | 4c4b012 | 2011-06-30 01:19:32 | [diff] [blame] | 101 | Show ignored files as well. |
Junio C Hamano | b72f603 | 2017-11-15 05:57:08 | [diff] [blame] | 102 | + |
| 103 | The mode parameter is used to specify the handling of ignored files. |
| 104 | It is optional: it defaults to 'traditional'. |
| 105 | + |
| 106 | The possible options are: |
| 107 | + |
| 108 | - 'traditional' - Shows ignored files and directories, unless |
| 109 | --untracked-files=all is specifed, in which case |
| 110 | individual files in ignored directories are |
| 111 | displayed. |
| 112 | - 'no' - Show no ignored files. |
| 113 | - 'matching' - Shows ignored files and directories matching an |
| 114 | ignore pattern. |
| 115 | + |
| 116 | When 'matching' mode is specified, paths that explicity match an |
| 117 | ignored pattern are shown. If a directory matches an ignore pattern, |
| 118 | then it is shown, but not paths contained in the ignored directory. If |
| 119 | a directory does not match an ignore pattern, but all contents are |
| 120 | ignored, then the directory is not shown, but all contents are shown. |
Junio C Hamano | 4c4b012 | 2011-06-30 01:19:32 | [diff] [blame] | 121 | |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 122 | -z:: |
| 123 | Terminate entries with NUL, instead of LF. This implies |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 124 | the `--porcelain=v1` output format if no other format is given. |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 125 | |
Junio C Hamano | 22700fb | 2012-05-03 23:07:25 | [diff] [blame] | 126 | --column[=<options>]:: |
| 127 | --no-column:: |
| 128 | Display untracked files in columns. See configuration variable |
| 129 | column.status for option syntax.`--column` and `--no-column` |
| 130 | without options are equivalent to 'always' and 'never' |
| 131 | respectively. |
| 132 | |
Junio C Hamano | a25ccc4 | 2018-03-08 21:36:14 | [diff] [blame^] | 133 | --ahead-behind:: |
| 134 | --no-ahead-behind:: |
| 135 | Display or do not display detailed ahead/behind counts for the |
| 136 | branch relative to its upstream branch. Defaults to true. |
| 137 | |
Junio C Hamano | 139b7d1 | 2017-10-03 07:10:59 | [diff] [blame] | 138 | <pathspec>...:: |
| 139 | See the 'pathspec' entry in linkgit:gitglossary[7]. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 140 | |
| 141 | OUTPUT |
| 142 | ------ |
| 143 | The output from this command is designed to be used as a commit |
Junio C Hamano | 52b6ba3 | 2014-04-01 00:26:48 | [diff] [blame] | 144 | template comment. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 145 | The default, long format, is designed to be human readable, |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 146 | verbose and descriptive. Its contents and format are subject to change |
| 147 | at any time. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 148 | |
Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 149 | The paths mentioned in the output, unlike many other Git commands, are |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 150 | made relative to the current directory if you are working in a |
| 151 | subdirectory (this is on purpose, to help cutting and pasting). See |
| 152 | the status.relativePaths config option below. |
Junio C Hamano | 00b8b63 | 2007-12-07 09:50:49 | [diff] [blame] | 153 | |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 154 | Short Format |
| 155 | ~~~~~~~~~~~~ |
| 156 | |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 157 | In the short-format, the status of each path is shown as one of these |
| 158 | forms |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 159 | |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 160 | XY PATH |
| 161 | XY ORIG_PATH -> PATH |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 162 | |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 163 | where `ORIG_PATH` is where the renamed/copied contents came |
| 164 | from. `ORIG_PATH` is only shown when the entry is renamed or |
| 165 | copied. The `XY` is a two-letter status code. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 166 | |
Junio C Hamano | b76a686 | 2012-05-02 22:02:46 | [diff] [blame] | 167 | The fields (including the `->`) are separated from each other by a |
Junio C Hamano | fc5d735 | 2010-04-24 02:59:11 | [diff] [blame] | 168 | single space. If a filename contains whitespace or other nonprintable |
| 169 | characters, that field will be quoted in the manner of a C string |
| 170 | literal: surrounded by ASCII double quote (34) characters, and with |
| 171 | interior special characters backslash-escaped. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 172 | |
Junio C Hamano | d2c2848 | 2014-10-24 22:28:25 | [diff] [blame] | 173 | For paths with merge conflicts, `X` and `Y` show the modification |
Junio C Hamano | fc5d735 | 2010-04-24 02:59:11 | [diff] [blame] | 174 | states of each side of the merge. For paths that do not have merge |
| 175 | conflicts, `X` shows the status of the index, and `Y` shows the status |
| 176 | of the work tree. For untracked paths, `XY` are `??`. Other status |
| 177 | codes can be interpreted as follows: |
| 178 | |
| 179 | * ' ' = unmodified |
| 180 | * 'M' = modified |
| 181 | * 'A' = added |
| 182 | * 'D' = deleted |
| 183 | * 'R' = renamed |
| 184 | * 'C' = copied |
| 185 | * 'U' = updated but unmerged |
| 186 | |
Junio C Hamano | 4c4b012 | 2011-06-30 01:19:32 | [diff] [blame] | 187 | Ignored files are not listed, unless `--ignored` option is in effect, |
| 188 | in which case `XY` are `!!`. |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 189 | |
| 190 | X Y Meaning |
| 191 | ------------------------------------------------- |
Junio C Hamano | 615c3b3 | 2018-02-28 23:40:27 | [diff] [blame] | 192 | [AMD] not updated |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 193 | M [ MD] updated in index |
| 194 | A [ MD] added to index |
Junio C Hamano | 615c3b3 | 2018-02-28 23:40:27 | [diff] [blame] | 195 | D deleted from index |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 196 | R [ MD] renamed in index |
| 197 | C [ MD] copied in index |
| 198 | [MARC] index and work tree matches |
| 199 | [ MARC] M work tree changed since index |
| 200 | [ MARC] D deleted in work tree |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 201 | [ D] R renamed in work tree |
| 202 | [ D] C copied in work tree |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 203 | ------------------------------------------------- |
| 204 | D D unmerged, both deleted |
| 205 | A U unmerged, added by us |
| 206 | U D unmerged, deleted by them |
| 207 | U A unmerged, added by them |
| 208 | D U unmerged, deleted by us |
| 209 | A A unmerged, both added |
| 210 | U U unmerged, both modified |
| 211 | ------------------------------------------------- |
| 212 | ? ? untracked |
Junio C Hamano | 4c4b012 | 2011-06-30 01:19:32 | [diff] [blame] | 213 | ! ! ignored |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 214 | ------------------------------------------------- |
| 215 | |
Junio C Hamano | 52a094d | 2017-04-20 05:35:10 | [diff] [blame] | 216 | Submodules have more state and instead report |
| 217 | M the submodule has a different HEAD than |
| 218 | recorded in the index |
| 219 | m the submodule has modified content |
| 220 | ? the submodule has untracked files |
| 221 | since modified content or untracked files in a submodule cannot be added |
| 222 | via `git add` in the superproject to prepare a commit. |
| 223 | |
| 224 | 'm' and '?' are applied recursively. For example if a nested submodule |
| 225 | in a submodule contains an untracked file, this is reported as '?' as well. |
| 226 | |
Junio C Hamano | f5de4cf | 2010-06-19 00:33:17 | [diff] [blame] | 227 | If -b is used the short-format status is preceded by a line |
| 228 | |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 229 | ## branchname tracking info |
Junio C Hamano | f5de4cf | 2010-06-19 00:33:17 | [diff] [blame] | 230 | |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 231 | Porcelain Format Version 1 |
| 232 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 233 | |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 234 | Version 1 porcelain format is similar to the short format, but is guaranteed |
Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 235 | not to change in a backwards-incompatible way between Git versions or |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 236 | based on user configuration. This makes it ideal for parsing by scripts. |
| 237 | The description of the short format above also describes the porcelain |
| 238 | format, with a few exceptions: |
| 239 | |
| 240 | 1. The user's color.status configuration is not respected; color will |
| 241 | always be off. |
| 242 | |
| 243 | 2. The user's status.relativePaths configuration is not respected; paths |
| 244 | shown will always be relative to the repository root. |
| 245 | |
| 246 | There is also an alternate -z format recommended for machine parsing. In |
Junio C Hamano | fc5d735 | 2010-04-24 02:59:11 | [diff] [blame] | 247 | that format, the status field is the same, but some other things |
Junio C Hamano | ef5a2f9 | 2011-05-31 19:53:33 | [diff] [blame] | 248 | change. First, the '\->' is omitted from rename entries and the field |
| 249 | order is reversed (e.g 'from \-> to' becomes 'to from'). Second, a NUL |
Junio C Hamano | fc5d735 | 2010-04-24 02:59:11 | [diff] [blame] | 250 | (ASCII 0) follows each filename, replacing space as a field separator |
| 251 | and the terminating newline (but a space still separates the status |
| 252 | field from the first filename). Third, filenames containing special |
| 253 | characters are not specially formatted; no quoting or |
Junio C Hamano | bcdb12e | 2012-05-10 18:45:15 | [diff] [blame] | 254 | backslash-escaping is performed. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 255 | |
Junio C Hamano | 52a094d | 2017-04-20 05:35:10 | [diff] [blame] | 256 | Any submodule changes are reported as modified `M` instead of `m` or single `?`. |
| 257 | |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 258 | Porcelain Format Version 2 |
| 259 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 260 | |
| 261 | Version 2 format adds more detailed information about the state of |
| 262 | the worktree and changed items. Version 2 also defines an extensible |
| 263 | set of easy to parse optional headers. |
| 264 | |
| 265 | Header lines start with "#" and are added in response to specific |
| 266 | command line arguments. Parsers should ignore headers they |
| 267 | don't recognize. |
| 268 | |
| 269 | ### Branch Headers |
| 270 | |
| 271 | If `--branch` is given, a series of header lines are printed with |
| 272 | information about the current branch. |
| 273 | |
| 274 | Line Notes |
| 275 | ------------------------------------------------------------ |
| 276 | # branch.oid <commit> | (initial) Current commit. |
| 277 | # branch.head <branch> | (detached) Current branch. |
| 278 | # branch.upstream <upstream_branch> If upstream is set. |
| 279 | # branch.ab +<ahead> -<behind> If upstream is set and |
| 280 | the commit is present. |
| 281 | ------------------------------------------------------------ |
| 282 | |
| 283 | ### Changed Tracked Entries |
| 284 | |
| 285 | Following the headers, a series of lines are printed for tracked |
| 286 | entries. One of three different line formats may be used to describe |
| 287 | an entry depending on the type of change. Tracked entries are printed |
| 288 | in an undefined order; parsers should allow for a mixture of the 3 |
| 289 | line types in any order. |
| 290 | |
| 291 | Ordinary changed entries have the following format: |
| 292 | |
| 293 | 1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path> |
| 294 | |
| 295 | Renamed or copied entries have the following format: |
| 296 | |
| 297 | 2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath> |
| 298 | |
| 299 | Field Meaning |
| 300 | -------------------------------------------------------- |
| 301 | <XY> A 2 character field containing the staged and |
| 302 | unstaged XY values described in the short format, |
| 303 | with unchanged indicated by a "." rather than |
| 304 | a space. |
| 305 | <sub> A 4 character field describing the submodule state. |
| 306 | "N..." when the entry is not a submodule. |
| 307 | "S<c><m><u>" when the entry is a submodule. |
| 308 | <c> is "C" if the commit changed; otherwise ".". |
| 309 | <m> is "M" if it has tracked changes; otherwise ".". |
| 310 | <u> is "U" if there are untracked changes; otherwise ".". |
| 311 | <mH> The octal file mode in HEAD. |
| 312 | <mI> The octal file mode in the index. |
| 313 | <mW> The octal file mode in the worktree. |
| 314 | <hH> The object name in HEAD. |
| 315 | <hI> The object name in the index. |
| 316 | <X><score> The rename or copy score (denoting the percentage |
| 317 | of similarity between the source and target of the |
| 318 | move or copy). For example "R100" or "C75". |
| 319 | <path> The pathname. In a renamed/copied entry, this |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 320 | is the target path. |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 321 | <sep> When the `-z` option is used, the 2 pathnames are separated |
| 322 | with a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09) |
| 323 | byte separates them. |
Junio C Hamano | 7b9cce9 | 2018-01-23 22:34:27 | [diff] [blame] | 324 | <origPath> The pathname in the commit at HEAD or in the index. |
| 325 | This is only present in a renamed/copied entry, and |
| 326 | tells where the renamed/copied contents came from. |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 327 | -------------------------------------------------------- |
| 328 | |
| 329 | Unmerged entries have the following format; the first character is |
| 330 | a "u" to distinguish from ordinary changed entries. |
| 331 | |
| 332 | u <xy> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path> |
| 333 | |
| 334 | Field Meaning |
| 335 | -------------------------------------------------------- |
| 336 | <XY> A 2 character field describing the conflict type |
| 337 | as described in the short format. |
| 338 | <sub> A 4 character field describing the submodule state |
| 339 | as described above. |
| 340 | <m1> The octal file mode in stage 1. |
| 341 | <m2> The octal file mode in stage 2. |
| 342 | <m3> The octal file mode in stage 3. |
| 343 | <mW> The octal file mode in the worktree. |
| 344 | <h1> The object name in stage 1. |
| 345 | <h2> The object name in stage 2. |
| 346 | <h3> The object name in stage 3. |
| 347 | <path> The pathname. |
| 348 | -------------------------------------------------------- |
| 349 | |
| 350 | ### Other Items |
| 351 | |
| 352 | Following the tracked entries (and if requested), a series of |
| 353 | lines will be printed for untracked and then ignored items |
| 354 | found in the worktree. |
| 355 | |
| 356 | Untracked items have the following format: |
| 357 | |
| 358 | ? <path> |
| 359 | |
| 360 | Ignored items have the following format: |
| 361 | |
| 362 | ! <path> |
| 363 | |
| 364 | ### Pathname Format Notes and -z |
| 365 | |
| 366 | When the `-z` option is given, pathnames are printed as is and |
| 367 | without any quoting and lines are terminated with a NUL (ASCII 0x00) |
| 368 | byte. |
| 369 | |
Junio C Hamano | 0f6f3bf | 2017-03-13 07:01:53 | [diff] [blame] | 370 | Without the `-z` option, pathnames with "unusual" characters are |
| 371 | quoted as explained for the configuration variable `core.quotePath` |
| 372 | (see linkgit:git-config[1]). |
Junio C Hamano | cd45166 | 2016-09-13 00:54:09 | [diff] [blame] | 373 | |
| 374 | |
Junio C Hamano | f9771f6 | 2007-01-17 17:42:30 | [diff] [blame] | 375 | CONFIGURATION |
| 376 | ------------- |
| 377 | |
| 378 | The command honors `color.status` (or `status.color` -- they |
| 379 | mean the same thing and the latter is kept for backward |
| 380 | compatibility) and `color.status.<slot>` configuration variables |
| 381 | to colorize its output. |
| 382 | |
Junio C Hamano | 942b35e | 2007-12-09 10:19:33 | [diff] [blame] | 383 | If the config variable `status.relativePaths` is set to false, then all |
| 384 | paths shown are relative to the repository root, not to the current |
| 385 | directory. |
| 386 | |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 387 | If `status.submoduleSummary` is set to a non zero number or true (identical |
Junio C Hamano | a0fae26 | 2009-12-28 09:33:50 | [diff] [blame] | 388 | to -1 or an unlimited number), the submodule summary will be enabled for |
| 389 | the long format and a summary of commits for modified submodules will be |
Junio C Hamano | 369e340 | 2013-10-15 18:40:25 | [diff] [blame] | 390 | shown (see --summary-limit option of linkgit:git-submodule[1]). Please note |
| 391 | that the summary output from the status command will be suppressed for all |
| 392 | submodules when `diff.ignoreSubmodules` is set to 'all' or only for those |
| 393 | submodules where `submodule.<name>.ignore=all`. To also view the summary for |
| 394 | ignored submodules you can either use the --ignore-submodules=dirty command |
| 395 | line option or the 'git submodule summary' command, which shows a similar |
| 396 | output but does not honor these settings. |
Junio C Hamano | e3ddb5b | 2008-04-21 00:48:07 | [diff] [blame] | 397 | |
Junio C Hamano | 371470a | 2017-12-13 22:26:40 | [diff] [blame] | 398 | BACKGROUND REFRESH |
| 399 | ------------------ |
| 400 | |
| 401 | By default, `git status` will automatically refresh the index, updating |
| 402 | the cached stat information from the working tree and writing out the |
| 403 | result. Writing out the updated index is an optimization that isn't |
| 404 | strictly necessary (`status` computes the values for itself, but writing |
| 405 | them out is just to save subsequent programs from repeating our |
| 406 | computation). When `status` is run in the background, the lock held |
| 407 | during the write may conflict with other simultaneous processes, causing |
| 408 | them to fail. Scripts running `status` in the background should consider |
| 409 | using `git --no-optional-locks status` (see linkgit:git[1] for details). |
| 410 | |
Junio C Hamano | 9049d91 | 2008-05-29 02:09:50 | [diff] [blame] | 411 | SEE ALSO |
Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 412 | -------- |
Junio C Hamano | 35738e8 | 2008-01-07 07:55:46 | [diff] [blame] | 413 | linkgit:gitignore[5] |
Junio C Hamano | f9771f6 | 2007-01-17 17:42:30 | [diff] [blame] | 414 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 415 | GIT |
| 416 | --- |
Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 417 | Part of the linkgit:git[1] suite |