Как проверить, что слияние git не содержит дополнительных изменений?

Как в git убедиться, что коммит merge upstream master не содержит дополнительных различий? Скажем, я хочу убедиться, что человек не сделал ничего «подлого», кроме фактического слияния изменений из основной ветки восходящего потока.

Я хочу убедиться, что различия исходят только от других коммитов, которые они сделали; что они не выполнили "злое слияние".

Есть ли способ убедиться, что на этапе слияния не было внесено никаких дополнительных изменений?
Или еще лучше: покажите мне потенциальные различия "злого слияния", чтобы я мог сам увидеть, какая дополнительная работа может потребоваться было сделано?

Пример сценария:

          P1---P2   P3---P4---P5---P6
         /       \  /        /       \
    A---B---C---D--E--------F---------G master
                    \      /
                     C1---C2

P1..P2: First pull request
C1..C2: My working branch
P3..P4: More work done inbetween
P5: The commit that merges in master branch changes
P6: More regular work
  1. Кто-то отправляет запрос на включение в мой репозиторий (P1..P2)
  2. Запрос на вытягивание просто фантастический, и я его объединяю (E)
  3. Я занимаюсь дальнейшей разработкой (C1..C2), интегрирую свою собственную ветку в master (F) и публикую
  4. Другой человек за это время проделал больше работы (P3..P4)
  5. Они объединяют изменения в своем локальном репозитории (P5), вносят дополнительные изменения (P6) и отправляют второй запрос на включение.
  6. Могу ли я убедиться, что они не добавили никаких дополнительных различий во время слияния (P5)?

person culix    schedule 28.11.2014    source источник
comment
ты пробовал git diff --name-status master..branchName ?   -  person royki    schedule 28.11.2014
comment
@Altius Использование git diff --name-status master..branchName, кажется, показывает мне только список всех файлов, которые были изменены, а не фактические различия кода. Кроме того, он показывает все файлы, которые обычно были частью слияния и включались в оба родителя. Я ищу только те различия, которых не было у обоих родителей. «Злое слияние» меняется.   -  person culix    schedule 28.11.2014
comment
Вы использовали SourceTree SourceTree? Или еще лучше в Emacs.   -  person royki    schedule 28.11.2014
comment
@Altius Помогает ли мне любая из этих программ убедиться, что слияние git не содержит дополнительных изменений? Если да, то как?   -  person culix    schedule 30.11.2014
comment
Прошла неделя, других ответов нет. Пока принимаю свой собственный ответ, но я по-прежнему открыт для других предложений, если у кого-то есть более простое/лучшее решение.   -  person culix    schedule 07.12.2014


Ответы (1)


Вы можете проверить, содержит ли коммит git merge какие-либо другие изменения, выполнив сравнение различий. Вот один из способов.

          P1---P2   P3---P4---P5---P6
         /       \  /        /       \
    A---B---C---D--E--------F---------G master
                    \      /
                     C1---C2
  1. #P2# <блочная цитата> #P3#
  2. #P4# <блочная цитата> #P5#
  3. #P6# <блочная цитата> #P7#

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

person culix    schedule 30.11.2014
comment
И если чьи-то реальные истории филиалов выглядят так же просто, как на этой диаграмме, я приветствую вас. - person culix; 02.12.2014