Тур по Git
История и отмена изменений / Урок 3.3

git diff — Сравнение изменений

Команда git diff показывает, что именно изменилось между двумя состояниями. Она необходима для проверки вашей работы перед коммитом.

Три типа сравнения

Рабочая дир.  →  git diff  →  Область подготовки  →  git diff --staged  →  Последний коммит
  • git diff — Показывает неподготовленные изменения (рабочая директория vs. индекс)
  • git diff --staged — Показывает подготовленные изменения (индекс vs. HEAD)
  • git diff HEAD — Показывает все изменения (рабочая директория vs. HEAD)

Чтение вывода diff

--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,3 @@
 line one
-old line two
+new line two
 line three
  • Строки, начинающиеся с -, были удалены
  • Строки, начинающиеся с +, были добавлены
  • Строки без префикса — это контекст (без изменений)

Попробуйте!

Попрактикуйтесь в просмотре различий на каждом этапе:

  1. Создайте и закоммитьте файл: echo "hello" > file.txt && git add file.txt && git commit -m "Add file"
  2. Измените файл: echo "hello world" > file.txt
  3. Посмотрите неподготовленные изменения: git diff
  4. Подготовьте изменение: git add file.txt
  5. Посмотрите подготовленные изменения: git diff --staged

Обратите внимание, что git diff ничего не показывает после подготовки (изменения переместились из рабочей директории в индекс), но git diff --staged теперь показывает изменение.

Ключевой вывод

Всегда выполняйте git diff --staged перед коммитом, чтобы проверить, что именно будет включено. Это предотвращает случайные коммиты отладочного кода или незавершённых изменений.

🎯

Цель

Измените файл, просмотрите diff, затем добавьте в индекс и просмотрите staged diff

Terminal
$

No commits yet. Run `git init` and create your first commit.