Menu
Coddy logo textTech

Git Diff

Последнее обновление

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

Попробуйте это в терминальном playground - реальная оболочка в вашем браузере, ничего устанавливать не нужно.

git diff показывает, какие именно строки изменились между двумя состояниями - удалённые и добавленные.

Синтаксис

CommandWhat it does
git diffНеиндексированные изменения относительно индекса
git diff --stagedПроиндексированные изменения относительно последнего коммита
git diff HEADВсе изменения с момента последнего коммита
git diff main featureРазница между двумя ветками
git diff <hash1> <hash2>Разница между двумя коммитами
git diff -- file.txtИзменения в одном файле

Частые случаи

GoalCommand
Посмотреть, что вы собираетесь закоммититьgit diff --staged
Посмотреть незакоммиченную работуgit diff
Сравнить вашу ветку с maingit diff main
Только имена изменённых файловgit diff --name-only

FAQ по git diff

Что git diff показывает по умолчанию?
Без аргументов git diff показывает изменения в вашем рабочем дереве, которые ещё не проиндексированы - то, что вы отредактировали с момента последнего git add. Чтобы увидеть уже проиндексированное (и что будет закоммичено следующим), используйте git diff --staged; чтобы увидеть всё с момента последнего коммита, используйте git diff HEAD.
В чём разница между git diff и git diff --staged?
git diff сравнивает ваше рабочее дерево с областью индексирования (неиндексированные изменения). git diff --staged (также --cached) сравнивает область индексирования с последним коммитом (проиндексированные изменения). Вместе они показывают две половины вашей незакоммиченной работы.
Как сделать diff двух веток или коммитов?
Укажите их: git diff main feature показывает, чем различаются две ветки, а git diff <hash1> <hash2> сравнивает два коммита. Добавьте -- <file> в конце, чтобы ограничить сравнение одним файлом.
Как увидеть только то, какие файлы изменились, а не полный diff?
Используйте git diff --name-only для получения только имён файлов или git diff --stat для сводки, показывающей каждый файл и сколько строк изменилось. Это удобно для быстрого обзора перед чтением полного построчного diff.
Могу ли я попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы запустить git diff в реальной оболочке в вашем браузере - ничего устанавливать не нужно. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает изучение изменений.
Coddy programming languages illustration

Изучайте Git с Coddy

НАЧАТЬ