git diff file

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.