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