</> Praktum

Главная / Git / Status

Урок 2 · Git · 18 минут

git status: всегда знай, что изменилось

Команда git status — безопасная точка проверки перед коммитом. Она показывает текущую ветку, изменённые файлы, новые файлы и то, что уже подготовлено.

Три состояния файла

Файл может быть изменён в рабочей папке, добавлен в индекс или сохранён в коммите. Команда git add переносит выбранные изменения в индекс, а git commit фиксирует их в истории.

git status
git add index.html
git status
git commit -m "Добавить страницу урока"

Посмотреть разницу

git diff показывает правки, которые ещё не добавлены в индекс. Перед коммитом это помогает заметить случайно удалённую строку или лишний файл.

git diff
git diff --staged

Ошибки

  • Делать git add ., не посмотрев status.
  • Добавлять в Git пароли, токены или большие временные файлы.
  • Писать сообщение коммита «fix» без объяснения результата.

Три колонки одного и того же файла

Файл может быть изменён в рабочей папке, подготовлен к снимку в индексе и уже записан в коммите. git status показывает первые два состояния. Зелёное «changes to be committed» попадёт в следующий коммит. Красное «not staged» останется за бортом, даже если файл открыт у тебя на экране.

git diff без аргументов сравнивает рабочую папку с индексом. git diff --staged показывает ровно то, что войдёт в коммит. Перед сообщением смотри второй вариант.

git status --short
git diff
git add styles.css
git diff --staged

Короткие пометки, которые встречаются сразу

  • ?? — Git видит файл впервые.
  • M в первой колонке — изменение уже в индексе, во второй — только в папке.
  • D — файл удалён.
  • Пустой статус после коммита означает, что снимок совпадает с папкой.
Запомни: Если в статусе слишком много чужих файлов, остановись и проверь, в той ли папке открыт терминал.

Как подготовить только нужное

git add путь добавляет один файл. git add -p спрашивает по кускам внутри файла и полезен, когда в одном CSS случайно смешались две задачи. git restore --staged файл убирает файл из индекса, не выбрасывая твои правки из редактора. Это не удаление работы.

Практика

Измени один файл, проверь git status, добавь только его и сделай коммит с понятным сообщением.

Практикум по теме