git diff branches


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



git diff branches, сравнение веток git


Команда git branch позволяет посмотреть существующие ветки.

git branch

  • master
    new


 Сравнение двух веток


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

source_branch..updated-code



При сравнении двух веток их имена разделяются двумя точками. Точки можно опускать заменяя их пробелом. Эффект будет тем же.

git diff source_branch updated-code




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

git diff branches


Здесь видно, что в локальном репозитории существует две ветки. За счёт git diff выполняем сравнение двух веток.

В выводе один файл, содержимое которого различается в разных ветках.

Сначала приведено его состояние в ветке master, потом его состояние в ветке new. В ветке new есть данные, которых в ветке master нет.




Три точки разделяющие параметры используются реже. Оператор изменяет параметры замещая ветку ref-ом предшествующего общего коммита.



То есть сравнивает состояние веток относительно merge base, последнего коммита после которого произошло разделение на ветки.



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


Если файл присутствует в обеих ветках и его состояние менялось — можно увидеть изменения передав имя файла в качестве третьего параметра

git diff source_branch updated-code ./file.txt



В репозитории, который приводился на скриншоте, таким образом, можно сравнить состояние файла в разных ветках выполнив такую команду

git diff master new ./somefile.txt



Читайте про сравнение файлов в одном коммите и в разных коммитах.

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