Что такое тривиальное слияние в git? - PullRequest
11 голосов
/ 01 декабря 2009

Иногда, когда я выполняю извлечение вместо ребазирования после простой фиксации изменения одного файла, я вижу следующее в главном журнале:

Тривиальное слияние

Но нет различий в том, что изменилось? Какой смысл этого сообщения журнала? Что-то изменилось, о чем я не знаю? Это пугает меня.

Ответы [ 3 ]

14 голосов
/ 01 декабря 2009

git не вставляет это сообщение в журнал в любой момент. Я собираюсь сделать дикое предположение и предположить, что вы видели это сообщение в gitweb.

gitweb печатает это сообщение, если не выводится комбинированный diff. Это происходит, когда единственными различиями были все фрагменты, когда изменялась только одна сторона слияния, и это изменение было внесено через слияние без изменений. Это в основном означает, что не было никаких конфликтов и ничего волшебства не было добавлено в коммит слияния.

3 голосов
/ 05 сентября 2012

Я подтверждаю, что единственное место в git codebase, где отображается сообщение «Trivial Merge», находится в gitweb.perl , в функции git_patchset_body() (справа здесь ):

if ($patch_number == 0) {
    if (@hash_parents > 1) {
        print "<div class=\"diff nodifferences\">Trivial merge</div>\n";
    } else {
        print "<div class=\"diff nodifferences\">No differences found</div>\n";
    }
}

Документ (включенный в документацию Git) trivial-merge.txt подробно объясняет все случаи, которые приводят к "тривиальному слиянию" (и они обсуждались в этой теме )

2 голосов
/ 01 декабря 2009

Страница справки git merge (та, которую вы получаете, набрав «git help merge») сообщает:

вы получили тот же патч из внешнего источника, чтобы получить тот же результат, что и то, что вы сливаете

...