Предположим, что я только что перебазировал ветку foo
на master
с конфликтами. Я хочу убедиться, что я случайно не повредил содержимое foo
во время разрешения конфликта, внеся дополнительные изменения или потеряв изменения (кроме тех, которые подходят для разрешения конфликта). Я сделал это через:
diff -u <(git diff `git merge-base master foo@{1}` foo@{1}) \
<(git diff `git merge-base master foo ` foo )
(обновление: или эквивалентный синтаксис ...
для git-diff
, о котором мне только что напомнили :)
diff -u <(git diff master...foo@{1}) <(git diff master...foo) | mate
Это показывает мне все изменения, которые произошли с master..foo
, рассматриваемым как исправление, и это именно то, что я хочу проверить на предмет минимальности. Однако вызов сложен, и вывод не совсем прост для интерпретации.
Есть ли лучший способ выполнить эту задачу — предоставить ту же информацию, но с использованием лучшего метода или формата — или я должен просто взять все вышеперечисленное и заключить его в сценарий?
git diff foo@{1} foo
? - person twalberg   schedule 17.09.2012git diff foo@{1} foo
показывает как мои разрешения конфликтов, так и изменения, внесенные в мастер, на который я перебазировался, а не только разрешения конфликтов. - person Kevin Reid   schedule 17.09.2012git cherry
). В этом случае можно использоватьgit log
со средством просмотра различий: stackoverflow.com/a/46127413/1959808 - person Ioannis Filippidis   schedule 09.09.2017git range-diff @{u} @{1} @
. См. мой ответ ниже. - person VonC   schedule 22.08.2018