← Все вопросы

Как посмотреть, что изменилось в файлах перед коммитом (diff и status)?

Задан 29 месяцев назад826 просмотров2 ответа
9

Перед коммитом хочу проверить, что именно я наменял. Какие файлы тронуты и что конкретно поменялось внутри. В чём разница между git status и git diff?

2 ответа

11
✓ Принятый ответ — помог автору

Это две разные, но дополняющие друг друга команды.

git status показывает список файлов: что изменено, что добавлено в индекс, что вообще новое (untracked). Это «карта» состояния:

git status

git diff показывает построчно, что именно поменялось внутри файлов — что удалено (строки с -), что добавлено (строки с +):

git diff

Важный нюанс: git diff по умолчанию показывает только не staged изменения. Если ты уже сделал git add, чтобы увидеть, что лежит в индексе, нужен флаг:

git diff --staged

(или --cached — то же самое).

Порядок работы обычно такой: git status (что тронуто) → git diff (что конкретно) → git addgit diff --staged (перепроверить, что коммитишь) → git commit.

Частая ошибка: сделать git add ., потом git diff и удивиться, что он пустой. Так и должно быть: после add изменения ушли в индекс, и для них теперь работает git diff --staged. Пустой git diff означает «незастейдженных правок больше нет», а не «изменений нет вообще».

3

Короткая шпаргалка:

  • git statusкакие файлы изменены (общая картина).
  • git diffчто изменилось в неиндексированных файлах.
  • git diff --staged — что изменилось в том, что уже добавлено через add.
  • git diff main feature — разница между двумя ветками.

Для выхода из длинного diff (он открывается в пейджере) жми q.

Ваш ответ

Войдите, чтобы ответить на вопрос.