Что делает команда `git diff`?

Команда git diff показывает изменения между коммитами, рабочей областью и индексом. Она генерирует патч, отображающий добавленные, удаленные и измененные строки кода. По умолчанию сравнивает рабочую область с индексом.

Команда git diff в Git используется для отображения изменений между различными состояниями вашего репозитория. Она позволяет сравнить изменения в файлах между:

  • Рабочей директорией и индексом (staging area): Показывает, какие изменения вы внесли в файлы, но еще не добавили в индекс для коммита (не сделали git add). Вы увидите различия между тем, что у вас сейчас в файлах, и тем, что вы последний раз добавляли для коммита.
  • Индексом и последним коммитом (HEAD): Показывает изменения, которые вы добавили в индекс (staging area) и которые еще не вошли в последний коммит. Это изменения, которые будут включены в следующий коммит.
  • Двумя коммитами, ветками или тегами: Позволяет сравнить состояние файлов между любыми двумя точками в истории вашего репозитория. Это очень полезно для понимания, какие изменения были внесены между разными версиями вашего проекта.

Основные варианты использования:

  • 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 – это фундаментальная команда для понимания изменений в коде, проверки перед коммитом и отслеживания истории проекта.

0