git diff file позволяет сравнивать состояние двух файлов/коммитов/веток, в том числе в разных ветках и в разных коммитах. Принимает ряд флагов.
git diff file — использование diff в одной ветке
На вход функция приникает две сущности, на выходе выдает различия между ними.
Сущностями для сравнения могут быть файлы, коммиты, ветки и др.
git diff часто используется с git status и git log чтобы проанализировать текущее состояние репозитория.
Пример использования:
git diff a/test.txt b/test.txt
Так сравниваются два файла.
Можно указывать полный путь и сравнивать с тем, что находится в HEAD
git diff HEAD ./folder/file
HEAD — текущее состояние каталога до коммита. Если опустить HEAD — результат будет тем же, поскольку сравнение по умолчанию идет с ним.
Пример на скриншоте:
В примере сравнение вывода git status и git diff. В файл somefile.txt попавший в коммит уже после коммита и перед выполнением команд внесены изменения. git diff показывает что именно поменялось в файле.
Если состояние текущей директории нужно сравнить с тем, что было при добавлении файлов для staging можно использовать ключи --cached
или --staged
Т.е. определенные файлы ранее могли быть добавлены для коммита через git add, потом внесены какие-то изменения. Сравнить состояние можно с упомянутыми флагами.
Пример сравнения текущего каталога со staging area
git diff --cached ./folder/file
По умолчанию команда показывается все незакомиченные изменения.
Читайте про staging area.