git status: что происходит в репозитории
Учимся читать «приборную панель» репозитория — команду, которую вы будете запускать чаще всех остальных.
Главная команда дня
Команда git status отвечает на вопрос «что у меня сейчас происходит?». Она показывает текущую ветку, какие файлы изменены, какие добавлены в индекс, а какие git вообще не отслеживает. Запускайте её постоянно — это нормально и правильно.
git statusСразу после git init в пустой папке с одним новым файлом вывод будет таким:
Вывод:
On branch main No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) readme.txt nothing added to commit but untracked files present
Читаем вывод по блокам
Git заботливо подсказывает, что делать дальше. Разберём типичные блоки:
- On branch main — вы на ветке
main. - Changes to be committed — это содержимое индекса (staged), попадёт в следующий коммит. Файлы обычно зелёные.
- Changes not staged for commit — отслеживаемые файлы изменены, но ещё не в индексе. Обычно красные.
- Untracked files — новые файлы, которые git не отслеживает.
Пример с изменениями
Допустим, один файл мы уже добавили в индекс, а второй только что отредактировали:
Вывод:
On branch main Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: app.py Changes not staged for commit: (use "git add <file>..." to update what will be committed) modified: style.css
Видно сразу: app.py готов к коммиту, а изменения в style.css в коммит пока не войдут.
Короткий формат
Когда привыкнете, пользуйтесь сжатым выводом:
git status -sВывод:
M app.py M style.css ?? notes.txt
Два столбца слева — это состояние в индексе и в рабочей директории. M в левом столбце — изменение в индексе, во втором — в рабочей директории, ?? — untracked-файл.
Чистое дерево
Когда всё закоммичено, вы увидите заветную строку:
Вывод:
On branch main nothing to commit, working tree clean
Почему status — лучший друг новичка
Опытные разработчики запускают git status буквально десятки раз в день, и это правильная привычка. Команда ничего не меняет — она только показывает текущее положение дел, поэтому абсолютно безопасна. Прежде чем делать git add, git commit, переключать ветку или сливать изменения, полезно глянуть status и убедиться, что вы понимаете, в каком состоянии репозиторий. Это спасает от десятков мелких ошибок: случайно закоммитить лишний файл, забыть добавить нужный, перепутать ветку.
Цвета в выводе
Если вы включили color.ui auto (мы делали это в уроке про настройку), git подсвечивает вывод: зелёным — то, что уже в индексе и попадёт в коммит, красным — изменённые, но ещё не добавленные файлы. Привыкнув к цветам, вы будете считывать состояние репозитория за секунду, даже не вчитываясь в текст.
Итог
git status— ваша приборная панель, запускайте её часто.- Различайте блоки: staged (в индексе), not staged (изменено, но не в индексе), untracked (новое).
git status -sдаёт компактный двухстолбцовый вывод.