Menu
CoddyTech

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

Изучайте Git с Coddy

НАЧАТЬ