Как заметил Алексей Цалолихин , вы показываете XML, а не JSON (как закодировано в тексте). Это не такая уж большая проблема: оба обеспечивают средства кодирования древовидных данных.
Git не понимает ничего из этого. Код слияния Git обрабатывает файлы как строк (текста). Это нормально, так как вы планируете выполнить слияние самостоятельно (с помощью кода, вручную или как угодно).
Обратите внимание, что распространение или объединение данных с древовидной структурой, независимо от их кодирования, по своей сути сложны. Он не должен использовать номера строк. Вероятно, должен посмотреть, совпадают ли поддеревья, и если да, считать их перемещенными, даже если они изменили глубину.
Если вы сделали слияние самостоятельно, и результат должен быть закодирован в тексте закодируйте его в текст и вставьте туда, куда он идет, и передайте Git результат в виде текстового файла. Все, что нужно git merge
- это окончательный текстовый файл. входные данные слияния представляли собой три текстовых файла - один из базового коммита слияния, второй из текущего коммита и третий из другого коммитируемого слияния - и для Git нужен новый text file.
Итак, возьмите свой результат слияния, закодируйте его как текст, и все готово: запишите его в соответствующий файл (или соответствующую часть соответствующего файла) и скажите Git это правильный результат слияния . Другими словами, запишите результат и запустите git add <em>path/to/file</em>
.
ПРИМЕЧАНИЕ. При слиянии я выбираю нужный файл в качестве основной ссылки. Я возьму копию правого файла и добавлю левое содержимое, как и когда выбрано.
В объединении есть три входа. Здесь нет «левого и правого»: есть базы слияния , наших и их . Дельта от базы к нашей представляет то, что мы изменили. Дельта от базы к их представляет то, что они изменили. Ваша задача состоит в том, чтобы объединить эти изменения .