git diff
показывает изменения между коммитами, рабочей областью и индексом. Она генерирует патч, отображающий добавленные, удаленные и измененные строки кода. По умолчанию сравнивает рабочую область с индексом.
Команда git diff
в Git используется для отображения изменений между различными состояниями вашего репозитория. Она позволяет сравнить изменения в файлах между:
git add
). Вы увидите различия между тем, что у вас сейчас в файлах, и тем, что вы последний раз добавляли для коммита.Основные варианты использования:
git diff
: Сравнивает рабочую директорию с индексом.git diff --cached
или git diff --staged
: Сравнивает индекс с последним коммитом (HEAD).git diff <commit1> <commit2>
: Сравнивает два коммита. <commit1>
и <commit2>
могут быть SHA-хешами коммитов, именами веток или тегов.git diff <branch1> <branch2>
: Сравнивает две ветки.git diff <file>
: Сравнивает рабочую директорию с индексом для конкретного файла.git diff HEAD
: Сравнивает рабочую директорию с последним коммитом.Формат вывода:
Вывод git diff
обычно представляет собой так называемый "патч". Он показывает, какие строки были добавлены (+), удалены (-) или изменены в файлах.
Пример вывода:
diff --git a/file.txt b/file.txt
index 1234567..89abcdef 100644
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,4 @@
This is the first line.
This is the second line.
-This is the third line.
+This is the third line.
+This is the fourth line.
В этом примере:
diff --git a/file.txt b/file.txt
: Указывает, что файл file.txt
был изменен.index 1234567..89abcdef 100644
: Информация об индексах файлов.--- a/file.txt
: Показывает версию файла до изменений.+++ b/file.txt
: Показывает версию файла после изменений.@@ -1,3 +1,4 @@
: Указывает строки, которые были изменены (с 1 по 3 в исходном файле, заменены строками с 1 по 4 в новом файле).-This is the third line.
: Строка, которая была удалена.+This is the fourth line.
: Строка, которая была добавлена.Важность:
git diff
– это фундаментальная команда для понимания изменений в коде, проверки перед коммитом и отслеживания истории проекта.