Ответ
Для просмотра локальных, ещё не отправленных в удалённый репозиторий изменений, я использую две основные команды: git status для общего обзора и git diff для деталей.
1. git status — общая картина
Показывает состояние рабочей директории и staging area (индекса).
git status
# Более компактный и понятный вывод
git status -s
Вывод -s использует двухбуквенные флаги:
M— файл изменён, но не добавлен в индекс.M— файл изменён и добавлен в индекс.??— новый неотслеживаемый файл.A— новый файл добавлен в индекс.
2. git diff — детальное сравнение
Показывает построчные различия.
# Изменения в рабочих файлах, которые ЕЩЁ НЕ в индексе (не staged)
git diff
# Изменения, которые УЖЕ добавлены в индекс (staged)
git diff --staged # или --cached
# Все локальные изменения относительно последнего коммита (и staged, и unstaged)
git diff HEAD
# Сравнить изменения в конкретном файле
git diff -- path/to/file.js
# Показать только имена изменённых файлов, без деталей
git diff --name-only
# Показать статистику изменений (сколько файлов и строк)
git diff --stat
Типичный рабочий процесс:
- После внесения кода делаю
git status -s, чтобы быстро увидеть, что поменялось. - Добавляю файлы в индекс:
git add .илиgit add specific.file. - Перед коммитом проверяю, что именно попадает в коммит:
git diff --staged. Это позволяет избежать случайного добавления отладочного кода или лишних файлов. - Если нужно отменить изменения в неиндексированном файле, смотрю
git diffдля этого файла, чтобы вспомнить, что было, затем могу выполнитьgit checkout -- file.