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
- Строки, начинающиеся с
-, были удалены - Строки, начинающиеся с
+, были добавлены - Строки без префикса — это контекст (без изменений)
Попробуйте!
Попрактикуйтесь в просмотре различий на каждом этапе:
- Создайте и закоммитьте файл:
echo "hello" > file.txt && git add file.txt && git commit -m "Add file" - Измените файл:
echo "hello world" > file.txt - Посмотрите неподготовленные изменения:
git diff - Подготовьте изменение:
git add file.txt - Посмотрите подготовленные изменения:
git diff --staged
Обратите внимание, что git diff ничего не показывает после подготовки (изменения переместились из рабочей директории в индекс), но git diff --staged теперь показывает изменение.
Ключевой вывод
Всегда выполняйте git diff --staged перед коммитом, чтобы проверить, что именно будет включено. Это предотвращает случайные коммиты отладочного кода или незавершённых изменений.