Перейти к содержимому

git status

gitstatus

Определение

Команда git status показывает состояние рабочей директории и области индексации (staging area). Она позволяет увидеть изменения, добавленные в индекс, и файлы, которые не отслеживаются Git. Вывод status не содержит информации об истории зафиксированных коммитов проекта. Для просмотра истории используйте команду git log. Команда git status просто отображает текущий статус изменений относительно команд git add и git commit.

Использование

Команда git status выводит список файлов, которые находятся в индексе, изменены, но не добавлены в индекс, а также новых (неотслеживаемых) файлов.

git status

makefile
git status

Основные опции

-s или --shortВыводит информацию в кратком формате.
-b или --branchОтображает информацию о ветке и отслеживании в кратком формате.
--porcelainВыводит информацию в формате, удобном для парсинга скриптами. Формат остается стабильным между версиями Git и не учитывает пользовательские настройки.
--longВыводит информацию в развернутом формате (по умолчанию).
-u<code><mode></code> или --untracked-files[=<mode>]Отображает неотслеживаемые файлы. Параметр mode является необязательным и используется для управления отображением неотслеживаемых файлов. Возможные значения: no — не отображать неотслеживаемые файлы; normal — отображать неотслеживаемые файлы и директории; all — также отображать отдельные файлы внутри неотслеживаемых директорий.
--ignore-submodules[=<when>]Игнорирует изменения в подмодулях при поиске изменений. Значение <when> может быть: none, untracked, dirty или all.
--ignoredОтображает игнорируемые файлы.
-zЗавершает каждую запись символом NUL. Если формат не указан, используется формат вывода --porcelain.
--column[=<options>] или --no-columnОтображает неотслеживаемые файлы в виде колонок. Если опции не указаны, --column эквивалентно always, а --no-columnnever.

Игнорирование файлов

Неотслеживаемые файлы могут быть двух типов: те, которые еще не были добавлены и закоммичены в проект, и бинарные файлы, такие как .pyc, .obj, .exe и т. д. Если бинарные файлы будут включены в вывод git status, вы не сможете увидеть реальное состояние вашего репозитория. Поэтому Git использует файл .gitignore для игнорирования этих файлов. Файлы, которые вы не хотите игнорировать, будут добавлены в этот файл отдельной строкой. Символ * используется как шаблон (wildcard):

git status игнорирование файлов

makefile
*.obj

Пояснение

Очень важно проверять состояние репозитория перед каждым коммитом. В следующем примере показано состояние репозитория до и после добавления файлов в индекс и коммита:

пример git status

makefile
# Edit w3docs.txt
git status
# w3docs.txt is listed under "Changes not staged for commit"
git add w3docs.txt
git status
# w3docs.txt is listed under "Changes to be committed"
git commit
git status
# nothing to commit (working directory clean)

Первый вывод status показывает неотслеживаемый (недобавленный в индекс) файл. Во втором выводе отражается результат выполнения команды git add. Третий вывод показывает, что коммитьть нечего.

Практика

Какую информацию предоставляет команда 'git status'?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.