Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.54.0 → 2.55.0 no changes
-
2.53.0
2026-02-02
- 2.45.1 → 2.52.0 no changes
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 no changes
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 no changes
-
2.39.0
2022-12-12
- 2.35.1 → 2.38.5 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.31.1 → 2.33.8 no changes
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 no changes
-
2.30.1
2021-02-08
- 2.24.1 → 2.30.0 no changes
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
- 2.7.6 → 2.10.5 no changes
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
- 2.3.10 no changes
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
ОПИСАНИЕ
Отображает пути, которые имеют различия между файлом индекса и текущим коммитом HEAD, пути, которые имеют различия между рабочим каталогом и файлом индекса, а также пути в рабочем каталоге, которые не отслеживаются Git (и не игнорируются gitignore[5]). Первые — это то, что вы закоммитили бы, выполнив git commit; вторые и третьи — это то, что вы могли бы закоммитить, выполнив git add перед выполнением git commit.
ПАРАМЕТРЫ
-
-s -
--short -
Выдавать вывод в кратком формате.
-
-b -
--branch -
Показывать ветку (и какую внешнюю ветку она отслеживает) даже в коротком формате.
-
--show-stash -
Показывать количество записей, в настоящее время спрятанных.
-
--porcelain[=<version>] -
Выдавать вывод в формате, удобном для анализа сценариями. Это похоже на краткий вывод, но останется стабильным во всех версиях Git и независимо от конфигурации пользователя. Подробности см. ниже.
Параметр <версия> используется для указания версии формата. Он необязателен и по умолчанию имеет исходный формат
v1. -
--long -
Выдавать вывод в длинном формате. Это значение по умолчанию.
-
-v -
--verbose -
В дополнение к именам изменённых файлов также показывать текстовые изменения, которые проиндексированы для фиксации (т.е. как вывод
gitdiff--cached). Если-vуказан дважды, также показывать изменения в рабочем каталоге, которые ещё не проиндексированы (т.е. как выводgitdiff). -
-u[<режим>] -
--untracked-files[=<режим>] -
Отображать неотслеживаемые файлы.
Параметр режима используется для указания обработки неотслеживаемых файлов. Он необязателен: по умолчанию
all, и если указан, он должен примыкать к параметру (например,-uno, но не-uno).Возможные значения аргумента:
Когда параметр
-uне используется, показываются неотслеживаемые файлы и каталоги (т.е. то же самое, что указаниеnormal), чтобы помочь вам не забыть добавить новые созданные файлы. Поскольку для поиска неотслеживаемых файлов в файловой системе требуется дополнительная работа, этот режим может занять некоторое время в большом рабочем каталоге. Рассмотрите возможность включения кэша неотслеживаемых файлов и разделённого индекса, если они поддерживаются (см.gitupdate-index--untracked-cacheиgitupdate-index--split-index). В противном случае вы можете использоватьno, чтобыgitstatusвозвращал результат быстрее, не показывая неотслеживаемые файлы. Все обычные варианты написания для булева значенияtrueпринимаются какnormal, аfalse— какno.По умолчанию можно изменить с помощью переменной конфигурации
status.showUntrackedFiles, описанной в git-config[1]. -
--ignore-submodules[=<when>] -
Iгнорировать изменения в подмодулях при поиске изменений. <когда> может быть
none,untracked,dirtyилиall, что является значением по умолчанию.-
none -
будет считать подмодуль изменённым, когда он содержит неотслеживаемые или изменённые файлы, или его HEAD отличается от коммита, записанного в суперпроекте, и может использоваться для переопределения любых настроек параметра
ignoreв git-config[1] или gitmodules[5]. -
untracked -
подмодули не считаются изменёнными, когда они содержат только неотслеживаемое содержимое (но они всё равно сканируются на предмет изменённого содержимого).
-
dirty -
игнорировать все изменения в рабочем каталоге подмодулей, показываются только изменения в коммитах, хранящихся в суперпроекте (это было поведением до версии 1.7.0).
-
all -
скрывать все изменения в подмодулях (и подавлять вывод сводок по подмодулям, когда установлен параметр конфигурации
status.submoduleSummary).
-
-
--ignored[=<mode>] -
Также показывать игнорируемые файлы.
Параметр режима используется для указания обработки игнорируемых файлов. Он необязателен: по умолчанию
traditional.Возможные значения аргумента:
-
traditional -
Показывать игнорируемые файлы и каталоги, если только не указан
--untracked-files=all, и в этом случае отображаются отдельные файлы в игнорируемых каталогах. -
no -
Не показывать игнорируемые файлы.
-
matching -
Показать игнорируемые файлы и каталоги, соответствующие шаблону игнорирования.
Пути, которые явно соответствуют шаблону игнорирования, показываются. Если каталог соответствует шаблону игнорирования, то он показывается, но не пути, содержащиеся в игнорируемом каталоге. Если каталог не соответствует шаблону игнорирования, но всё его содержимое игнорируется, то каталог не показывается, но всё содержимое показывается.
-
-
-z -
Завершать записи символом NUL вместо LF. Это подразумевает формат вывода
--porcelain=v1, если не указан другой формат. -
--column[=<параметры>] -
--no-column -
Отображать неотслеживаемые файлы в столбцах. См. конфигурационную переменную
column.statusдля синтаксиса параметров.--columnи--no-columnбез параметров эквивалентныalwaysиneverсоответственно. -
--ahead-behind -
--no-ahead-behind -
Отображать или не отображать подробные сведения о количестве опережений/отставаний для ветки относительно её вышестоящей ветки. По умолчанию
true. -
--renames -
--no-renames -
Включает/отключает обнаружение переименований независимо от конфигурации пользователя. См. также git-diff[1]
--no-renames. -
--find-renames[=<n>] -
Включает обнаружение переименований, опционально устанавливая порог схожести. См. также git-diff[1]
--find-renames. - <спецификатор-пути>…
-
См. запись pathspec в gitglossary[7].
ВЫВОД
Вывод этой команды предназначен для использования в качестве комментария-шаблона коммита. Формат по умолчанию, длинный, предназначен для удобочитаемости, подробности и описательности. Его содержимое и формат могут быть изменены в любое время.
Пути, упомянутые в выводе, в отличие от многих других команд Git, являются относительными относительно текущего каталога, если вы работаете в подкаталоге (это сделано намеренно, чтобы помочь копированию и вставке). См. параметр конфигурации status.relativePaths ниже.
Короткий формат
При использовании короткого формата статус каждого пути отображается в одном из следующих форм:
<xy> <путь> <xy> <исходный-путь> -> <путь>
где <orig-path> — это место, откуда было переименовано/скопировано содержимое. <orig-path> отображается только в том случае, если запись была переименована или скопирована. <xy> — это двухбуквенный код состояния XY.
Поля (включая ->) отделяются друг от друга одним пробелом. Если имя файла содержит пробелы или другие непечатаемые символы, это поле будет заключено в кавычки в стиле строкового литерала C: окружено символами ASCII двойной кавычки (34), а внутренние специальные символы экранированы обратной косой чертой.
Существует три различных типа состояний, которые показываются с использованием этого формата, и каждый из них использует синтаксис <xy> по-разному:
-
Когда происходит слияние и оно было успешным, или вне слияния ситуации,
Xпоказывает статус индекса, аYпоказывает статус рабочего каталога. -
Когда возник конфликт слияния и он ещё не разрешён,
XиYпоказывают состояние, внесённое каждой головой слияния, относительно общего предка. Эти пути называются не слитыми. -
Когда путь не отслеживается,
XиYвсегда одинаковы, поскольку они неизвестны индексу. ?? используется для неотслеживаемых путей. Игнорируемые файлы не перечисляются, если не используется--ignored; если используется, игнорируемые файлы обозначаются!!.
Обратите внимание, что термин merge здесь также включает перемещения с использованием стратегии --merge по умолчанию, копирование коммитов и всё остальное, что использует механизм слияния.
В следующей таблице эти три класса показаны в отдельных разделах, и эти символы используются для полей X и Y в первых двух разделах, показывающих отслеживаемые пути:
| X | Y | Значение |
|---|---|---|
[ |
не обновлено |
|
|
[ |
обновлён в индексе |
|
[ |
тип изменён в индексе |
|
[ |
добавлен в индекс |
|
удалён из индекса |
|
|
[ |
переименовано в индексе |
|
[ |
скопирован в индексе |
[ |
индекс и рабочий каталог совпадают |
|
[ |
|
рабочий каталог изменён с момента индекса |
[ |
|
тип изменён в рабочем каталоге с момента индекса |
[ |
|
удалён в рабочем каталоге |
|
переименован в рабочем каталоге |
|
|
скопирован в рабочем каталоге |
|
|
|
не слит, оба удалены |
|
|
не слит, добавлено нами |
|
|
не слит, удалено ими |
|
|
не слит, добавлено ими |
|
|
не слит, удалено нами |
|
|
не слито, оба добавлены |
|
|
не слито, оба изменены |
? |
? |
неотслеживаемый |
|
|
игнорируемый |
Подмодули имеют больше состояний и вместо этого сообщают
Это связано с тем, что изменённое содержимое или неотслеживаемые файлы в подмодуле не могут быть добавлены через git add в суперпроекте для подготовки коммита.
m и ? применяются рекурсивно. Например, если вложенный подмодуль в подмодуле содержит неотслеживаемый файл, это также сообщается как ?.
Если используется -b, краткому формату статуса предшествует строка
{empty}## <имя-ветки> <информация-об-отслеживании>
Формат Porcelain версии 1
Формат Porcelain версии 1 похож на краткий формат, но гарантированно не изменяется несовместимым образом между версиями Git или в зависимости от конфигурации пользователя. Это делает его идеальным для анализа сценариями. Описание краткого формата выше также описывает Porcelain формат, за исключением нескольких моментов:
-
Конфигурация
color.statusпользователя не учитывается; цвет всегда будет выключен. -
Конфигурация
status.relativePathsпользователя не учитывается; показанные пути всегда будут относительными корня репозитория.
Существует также альтернативный формат -z, рекомендуемый для машинного анализа. В этом формате поле статуса остаётся тем же, но некоторые другие вещи меняются. Во-первых, -> опускается из записей переименования, и порядок полей меняется на обратный (например, from -> to становится to from). Во-вторых, после каждого имени файла следует NUL (ASCII 0), заменяющий пробел в качестве разделителя полей и завершающий символ новой строки (но пробел по-прежнему отделяет поле статуса от первого имени файла). В-третьих, имена файлов, содержащие специальные символы, не форматируются специальным образом; не выполняется никаких кавычек или экранирования обратной косой чертой.
Любые изменения в подмодулях сообщаются как изменённые M вместо m или одиночного ?.
Формат Porcelain версии 2
Формат версии 2 добавляет более подробную информацию о состоянии рабочего каталога и изменённых элементах. Версия 2 также определяет расширяемый набор легко анализируемых необязательных заголовков.
Строки заголовков начинаются с # и добавляются в ответ на определённые аргументы командной строки. Анализаторы должны игнорировать заголовки, которые они не распознают.