У меня следующая ситуация:
Исходный файл test.xml:
<li>
<span>BA</span>
</li>
Файл с зафиксированными локальными изменениями:
<li>
<span>BA</span>
</li>
<li>
<span>CE</span>
</li>
Файл с удаленными изменениями, полученными через git pull:
<li>
<span>BA</span>
</li>
<li>
<span>DF</span>
</li>
git pull идентифицирует только строки с новыми <span>s как изменения, есть ли какой-либо вариант для использования с git pull / git merge, который может избежать этой ситуации?
ОБНОВЛЕНИЕ: это файл с обнаруженным конфликтом:
<li>
<span>BA</span>
</li>
<li>
<<<<<<< HEAD
<span>CE</span>
=======
<span>DF</span>
>>>>>>> master
</li>
Пока я ожидал чего-то вроде:
<li>
<span>BA</span>
</li>
<li>
<<<<<<< HEAD
<li>
<span>CE</span>
</li>
=======
<li>
<span>DF</span>
</li>
>>>>>>> master
</li>
Я пробовал использовать аргумент --strategy-option=patience для git pull, но это не дало никакого эффекта.
Это только простой пример. На самом деле эта проблема возникает с файлами .resx, которые редактируются с помощью редактора Visual Studio по умолчанию.
merge.conflictStyleвdiff3указывает Git записать базовый текст слияния в рабочее дерево вместе с версиями этапа 2 и этапа 3 внутри области маркера конфликта. Это не имеет никакого другого эффекта, и если вы пишете собственный драйвер слияния, это не имеет значения. Правильный способ сделать это — использовать пользовательский драйвер слияния, но написать правильный пользовательский драйвер слияния для XML чрезвычайно сложно. - person torek   schedule 18.12.2018merge.conflictStyleобласть конфликта включала<li>, как и ожидалось. Нет абсолютно ничего о написании пользовательских драйверов слияния или что-то в этом роде. - person Adilson de Almeida Jr   schedule 18.12.2018