Home Explore Blog CI



git

6th chunk of `Documentation/git-status.adoc`
3b51f2a1241ff95f03406ad001d1a583489b1c9ebae929160000000100000a72
 the following format:

    ! <path>

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)
byte.

Without the `-z` option, pathnames with "unusual" characters are
quoted as explained for the configuration variable `core.quotePath`
(see linkgit:git-config[1]).


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]). 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 where `submodule.<name>.ignore=all`. To also view the summary for
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.

BACKGROUND REFRESH
------------------

By default, `git status` will automatically refresh the index, updating
the cached stat information from the working tree and writing out the
result. Writing out the updated index is an optimization that isn't
strictly necessary (`status` computes the values for itself, but writing
them out is just to save subsequent programs from repeating our
computation). When `status` is run in the background, the lock held
during the write may conflict with other simultaneous processes, causing
them to fail. Scripts running `status` in the background should consider
using `git --no-optional-locks status` (see linkgit:git[1] for details).

UNTRACKED FILES AND PERFORMANCE
-------------------------------

`git status` can be very slow in large worktrees if/when it
needs to search for untracked files and directories. There are
many configuration options available to speed this up by either
avoiding the work or making use of cached results from previous
Git commands. There is no single optimum set of settings right
for everyone. We'll list a summary of the relevant options to help
you, but before going into the list, you may want

Title: Git Status Configuration and Performance
Summary
The Git status command has various configuration options to customize its output, including colorizing, pathname formatting, and submodule summary, and also provides ways to improve performance in large worktrees by avoiding or caching untracked file searches, with options such as `--no-optional-locks` and several configuration variables to optimize its behavior