Включено 4 файла:
$LOCAL
Файл в ветке, где вы объединяете; не тронут процесс слияния при показе вам
$REMOTE
Файл на ветке, из которой вы сливаетесь; не тронут процесс слияния при показе вам
$BASE
Общий предок $ LOCAL и $ REMOTE, т.е. точка, в которой две ветви начали отклонять рассматриваемый файл; не тронут процесс слияния при показе вам
$MERGED
Частично объединенный файл с конфликтами; это единственный файл, затронутый процессом слияния и, фактически, никогда не показанный вам вmeld
$MERGED
Файл является тот , который содержит <<<<<<
, >>>>>>
, =====
(и, может быть, ||||||
) маркер (которые отграничивают конфликты). Это файл, который вы редактируете вручную, чтобы исправить конфликты.
Ручное редактирование конфликтов и визуальное редактирование конфликтов выполняются для разных файлов и содержат различную информацию.
При использовании mergetool (предположим meld
), файлы, которые видят в нем являются: $LOCAL
, $BASE
, $REMOTE
. Обратите внимание, что вы не видите $MERGED
файл, хотя он передается как скрытый параметр, meld
чтобы записать в него результат редактирования.
Другими словами, meld
вы редактируете файл посередине, $BASE
файл и выбираете все изменения слева или справа вручную . Это чистый файл, не затронутый процессом слияния. Единственный сбой в том, что при сохранении вы сохраняете не $BASE
файл, а четвертый скрытый параметр meld
- $MERGED
файл (который вы даже не видите). $BASE
Файла не не содержит каких - либо конфликтов или частичное успешных слияний , потому что это не $MERGED
файл .
При визуальном редактировании при представлении вам $BASE
файл (а не $MERGED
файл) в git
основном отбрасывает все его попытки выполнить слияние (эти попытки видны, если хотите, в файле $ MERGED) и позволяет вам полностью выполнить слияние с нуля .
Суть в том, что при конфликтах с ручным и визуальным слиянием вы не смотрите на одни и те же файлы, но конечный результат записывается в одном и том же файле (то есть $MERGED
файле).
Ручная коррекция конфликтов делается на $MERGED
потому , что git
не имеет среднего представить вам три файла, поэтому он давит информацию из трех файлов ( $LOCAL
, $BASE
, $REMOTE
) в этом $MERGED
файле.
Но визуальные инструменты имеют средства , чтобы показать вам три файла: они показывают вам $LOCAL
, $BASE
, $REMOTE
файлы. Вы выбираете изменения от $LOCAL
и $REMOTE
файлов , и вы приносите те в $BASE
файл, полностью заново строить и даже перезапись неудачной попытки слияния , что является $MERGED
файлом.
merge.conflictstyle
установлен параметр конфигурацииdiff3
вместо значения по умолчаниюmerge
.