git: как сравнивать фиксации и ветки |
![]() |
Добавил(а) microsin |
Общий ответ: надо использовать команду git diff. Общий синтаксис команды (полную справку можно получить через git diff --help): git diff [< options>] < commit>..< commit> [--] [< path>...] Входные данные для команды diff (значения хэша для обозначения нужного commit) можно узнать с помощью команды git log (или еще лучше git log --pretty=oneline). Пути до нужных веток можно узнать командой git branch -a. К примеру, с помощью команды git log вы просмотрели историю по сообщениям фиксаций (т. е. сообщения, которые ранее были введены командами git commit -m), и определили, какие commit-ы хотели бы стравить. Предположим, что у первого сравниваемого commit-а хэш равен aa652b80b15ee608afd0855e3f2797f5874fcfc0, а у второго сравниваемого 2c72e10b2e53d3f1fc96198906e1ce6f7a745a3a. Тогда для сравнения этих commit-ов (фиксаций) введите команду: $ git diff aa652b80b15ee608afd0855e3f2797f5874fcfc0 2c72e10b2e53d3f1fc96198906e1ce6f7a745a3a Если не вводить второй хэш, то сравнение будет текущей ветки/фиксации и указанной хэшем фиксации. Точно так же можно сравнивать и ветки, просто вместо хэшей нужно вводить имена веток: $ git diff branch1 branch2 Если не указывать вторую ветку, то сравнение указанной ветки будет происходить с текущей веткой. Пример, когда текущей веткой сделана ветка main, и производится её сравнение с веткой branch2: $ git checkout main Одним из самых полезных аргументов является -p или --patch, который показывает разницу (выводит патч), внесённую в каждый коммит. Так же вы можете ограничить количество записей в выводе команды; используйте параметр -2 для вывода только двух записей. [Ссылки] 1. How can I see the differences between two branches? site:stackoverflow.com. |