git diff file


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 file add


В примере сравнение вывода git status и git diff. В файл somefile.txt попавший в коммит уже после коммита и перед выполнением команд внесены изменения. git diff показывает что именно поменялось в файле.



Если состояние текущей директории нужно сравнить с тем, что было при добавлении файлов для staging можно использовать ключи --cached  или --staged



Т.е. определенные файлы ранее могли быть добавлены для коммита через git add, потом внесены какие-то изменения. Сравнить  состояние можно с упомянутыми флагами.



Пример сравнения текущего каталога со staging area

git diff --cached ./folder/file



По умолчанию команда показывается все незакомиченные изменения.

Читайте про staging area.

Сказать спасибо