git diff commit

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

 

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

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

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

 

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

git log —pretty=onelinegit 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 d4cc089501fb2a9c64eb0454fe2e6c2205f1e527 b467651fe47da55118e138e52dd4c1f41e6f2983

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

 

 

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

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

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

 

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