Что такое diff?

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

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

Основные характеристики

  • Просмотр изменений: git diff показывает изменения в файлах между различными состояниями вашего репозитория.
  • Сравнение версий: Можно сравнивать изменения между ветками, коммитами, индексом и рабочим каталогом.
  • Формат патча: Отображает различия в формате патча, что удобно для анализа изменений или создания патчей для других разработчиков.

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

1. Просмотр изменений в рабочем каталоге по сравнению с индексом

Эта команда показывает изменения, которые были сделаны в файлах, но еще не были добавлены в индекс (staging area).

git diff

2. Просмотр изменений, которые были добавлены в индекс, но еще не закоммичены

Эта команда показывает изменения, которые были добавлены в индекс с помощью git add, но еще не были закоммичены.

git diff --cached

Также можно использовать git diff --staged вместо --cached.

3. Просмотр всех изменений, сделанных в рабочем каталоге и индексе по сравнению с последним коммитом

Эта команда показывает все изменения, которые были внесены в файлы с момента последнего коммита.

git diff HEAD

4. Сравнение двух веток

Эта команда показывает различия между двумя ветками.

git diff <branch1> <branch2>

Пример:

git diff main feature-branch

5. Сравнение двух коммитов

Эта команда показывает различия между двумя коммитами.

git diff <commit1> <commit2>

Пример:

git diff abc1234 def5678

6. Просмотр изменений в конкретном файле

Эта команда показывает изменения, сделанные в указанном файле.

git diff <файл>

Пример:

git diff README.md

Полезные флаги и опции

  • --name-only: Показывает только имена изменённых файлов, без подробного списка изменений.

    git diff --name-only
    
  • --stat: Показывает статистику изменений, включая количество добавленных и удалённых строк для каждого файла.

    git diff --stat
    
  • --color: Включает или отключает цветное выделение изменений.

    git diff --color
    
  • --word-diff: Показывает изменения на уровне слов, а не строк.

    git diff --word-diff
    

Пример работы с git diff

  1. Посмотреть изменения в рабочем каталоге:

    git diff
    
  2. Посмотреть изменения, добавленные в индекс, но еще не закоммиченные:

    git diff --cached
    
  3. Сравнить две ветки:

    git diff main feature-branch
    
  4. Сравнить два коммита:

    git diff abc1234 def5678
    

Примечание

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

Теперь вы знаете, что делает команда git diff, как она работает и как её использовать для просмотра и сравнения изменений в вашем репозитории.