Тур по Git
Основы Git / Урок 1.7

git diff --- Просмотр изменений

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

Два типа diff

Рабочая директория vs. область индексации

Запуск git diff без аргументов показывает изменения в рабочей директории, которые ещё не проиндексированы:

git diff

Область индексации vs. последний коммит

Чтобы увидеть, что вы уже проиндексировали (что войдёт в следующий коммит), используйте:

git diff --staged

Иногда это записывают как git diff --cached --- они означают одно и то же.

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

Типичный diff выглядит так:

diff --git a/file.txt b/file.txt
index 83db48f..bf269f4 100644
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,4 @@
 line one
-line two
+line two updated
+line three
 line four
  • Строки, начинающиеся с -, были удалены (отображаются красным)
  • Строки, начинающиеся с +, были добавлены (отображаются зелёным)
  • Строки без префикса --- это неизменённые контекстные строки

Попробуйте!

В репозитории уже есть зафиксированный файл. Измените его и исследуйте diff:

  1. Отредактируйте файл: echo "updated content" > file.txt
  2. Посмотрите непроиндексированный diff: git diff
  3. Проиндексируйте изменение: git add file.txt
  4. Убедитесь, что непроиндексированного diff больше нет: git diff (должен быть пустым)
  5. Посмотрите проиндексированный diff: git diff --staged
  6. Зафиксируйте: git commit -m "Update file content"
  7. Подтвердите, что всё чисто: git diff и git diff --staged (оба пустые)

Обратите внимание, как diff «перемещается» из git diff в git diff --staged после выполнения git add.

Сравнение конкретных файлов

Вы можете ограничить diff одним файлом:

git diff file.txt
git diff --staged file.txt

Это полезно, когда вы изменили много файлов, но хотите просмотреть только один.

🎯

Цель

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

Terminal
$

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