git diff commit


git diff COMMIT позволяет сравнивать изменения, находящиеся в разных коммитах или ветках. Также передавать можно HEAD и тэги. Нужные значения указываются вместо COMMIT в примере.



Сравнение файлов между двумя коммитами (git diff commit)


Каждый коммит в git имеет свой идентификатор, который можно выявить при помощи git log.

Идентификатор можно передать git diff



Как найти идентификатор коммита


Чтобы результат был более наглядным добавляется ключ pretty=oneline



git log --pretty=oneline

294276ecd27183dbfa464c45b41cfe1c24082ba0 (HEAD -> master, origin/master) added readme
d4cc089501fb2a9c64eb0454fe2e6c2205f1e527 added readme
b467651fe47da55118e138e52dd4c1f41e6f2983 ready to go



git log выводит идентификатор и добавленный при коммите комментарий.


По умолчанию сравнение выполняется с текущим состоянием, достаточно передать ID


git diff ufihj09kik123030c389545fgf54452265545455f102

diff —git a/README.md b/README.md
index 5d1ae95..41c1db5 100644
— a/README.md
+++ b/README.md
+
+### How to use ###
…skipping…

\ No newline at end of file


Часть вывода пропущена, сравниваются все файлы, которые были изменены.



Пример приведен на скриншоте:

git diff commit


Здесь приводится список коммитов. В тестовом репозитории один коммит. Потом выполнено сравнение текущего состояния с состоянием в коммите.

Коммит для сравнения передается за счёт идентификатора.



Между двумя коммитами


Таким же образом передается через пробел два идентификатора коммитов

git diff d4cc089501fb2a9c64eb0454fe2e6c2205f1e527 b467651fe47da55118e138e52dd4c1f41e6f2983

diff —git a/README.md b/README.md
index 5d1ae95..486813d 100644
— a/README.md
+++ b/README.md



После последнего примера появился ещё один коммит.

git diff COMMIT показывает результат сравнения состояний:

git diff между коммитами


Сравнение двух файлов в разных коммитах


Файл передается после идентификатора через двоеточие после идентификатора каждого коммита.

git diff d4cc089501fb2a9c64eb0454fe2e6c2205f1e527:README.md b467651fe47da55118e138e52dd4c1f41e6f2983:README.md



О том как сравнивать файлы в одной ветке при помощи git diff.

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