Сравнение коммитов - Git Diff

Вы можете генерировать diff между любыми двумя версиями вашего проекта используя git diff:

$ git diff master..test

Это сгенерирует diff между последними коммитами двух ветвей разработки. Если вы предпочитаете найти diff от их общего предка к ветке test, вы можете использовать три точки вместо двух:

$ git diff master...test

git diff это невероятно полезный инструмент для нахождения изменений между любыми двумя точками в истории вашего проекта, или чтобы увидеть что другие разработчики пытаются вносить в новые ветви. и т.д.

Что вы будете коммитить

Вы будете обычно использовать git diff для нахождения различий между последним коммитом, вашем индексом, и вашей рабочей директории. Это просто сделать выполнив

$ git diff

Это покажет изменения в вашей рабочей директории которые еще не были добавлены в индекс для последующего коммита. Если вы хотите видеть что в индексе готово для коммита то выполните

$ git diff --cached

что покажет вам различия между индексом и вашим последним коммитом; то что вы бы закоммитили, если выполнили коммит командой "git commit" без параметра "-a". В заключении вы можете выполнить

$ git diff HEAD

что покажет изменения в рабочей директории от последнего коммита; то что вы бы закоммитили если выполнили команду "git commit -a".

Больше параметров Diff

Если вы хотите увидеть как ваша рабочая директория отличается от состояния проекта в другой ветке, то выполните команду

$ git diff test

Это покажет вам что именно отличается между вашей рабочей директорией и снапшотом в ветке 'test'. Вы также можете ограничить сравнение определенным файлом или поддиректорией добавив path limiter (ограничитель пути):

$ git diff HEAD -- ./lib 

Эта команда покажет вам изменения между вашей рабочей директорией и последним коммитом (или, если быть более точным, концом текущей ветки, ограничивая сравнение файлами в поддиректории 'lib'.

Если вы не хотите видеть весь патч, вы можете добавить параметр '--stat', которые ограничит вывод списком файлов с изменениями и с кратким текстовым графическим описанием сколько строк изменилось в каждом файле..

$>git diff --stat
 layout/book_index_template.html                    |    8 ++-
 text/05_Installing_Git/0_Source.markdown           |   14 ++++++
 text/05_Installing_Git/1_Linux.markdown            |   17 +++++++
 text/05_Installing_Git/2_Mac_104.markdown          |   11 +++++
 text/05_Installing_Git/3_Mac_105.markdown          |    8 ++++
 text/05_Installing_Git/4_Windows.markdown          |    7 +++
 .../1_Getting_a_Git_Repo.markdown                  |    7 +++-
 .../0_ Comparing_Commits_Git_Diff.markdown         |   45 +++++++++++++++++++-
 .../0_ Hosting_Git_gitweb_repoorcz_github.markdown |    4 +-
 9 files changed, 115 insertions(+), 6 deletions(-)

Иногда полезно увидеть общие изменения чтобы освежить память.



github logo