Урок 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, добавь только его и сделай коммит с понятным сообщением.
Практикум по теме
- Посмотреть diff до коммита — git status говорит, какие файлы изменились. diff показывает сами строки.