test.txt
в рабочем каталоге и версией, находящейся в индексе (staging area). Покажет изменения, которые были внесены в файл, но ещё не добавлены в индекс с помощью git add
. Если файл не был изменен, то ничего не выведет.Команда git diff test.txt
выведет разницу между текущим состоянием файла test.txt
в вашем рабочем каталоге и его версией, находящейся в индексе (staging area).
В общем виде вывод будет выглядеть следующим образом:
diff --git a/test.txt b/test.txt
index <хэш_старой_версии>..<хэш_новой_версии> <режим_доступа>
--- a/test.txt
+++ b/test.txt
@@ -<номер_строки_начала_старой_версии>,<количество_строк_старой_версии> +<номер_строки_начала_новой_версии>,<количество_строк_новой_версии> @@
<строка_контекста>
-<строка_удаленная>
+<строка_добавленная>
<строка_контекста>
Разберем значения:
diff --git a/test.txt b/test.txt
: указывает, что это diff между двумя версиями файла test.txt
. a/
относится к исходной версии (в индексе), а b/
к текущей версии (в рабочей директории).index <хэш_старой_версии>..<хэш_новой_версии> <режим_доступа>
: показывает хэши старой и новой версий файла, а также режим доступа к файлу (например, 100644 для обычного файла). Хэши позволяют однозначно идентифицировать конкретные версии файла в Git. Режим доступа определяет права на чтение, запись и исполнение файла.--- a/test.txt
: указывает на исходную версию файла (в индексе).+++ b/test.txt
: указывает на новую версию файла (в рабочей директории).@@ -<номер_строки_начала_старой_версии>,<количество_строк_старой_версии> +<номер_строки_начала_новой_версии>,<количество_строк_новой_версии> @@
: это "hunk header". Он показывает, в каких строках файла произошли изменения. Отрицательное число указывает на строку начала в старой версии, а положительное - в новой. Числа после запятой обозначают количество строк, включенных в этот "hunk".-
), – это строки, которые были удалены из исходной версии файла.+
), – это строки, которые были добавлены в новую версию файла.Если файл test.txt
не был изменен, команда git diff test.txt
ничего не выведет.