Объединить разрешение конфликтов

При конфликте слиянием в Git в конфликтующие файлы вставляется как ненужный, как следующий. Три вопроса:

  • Как вы читаете эти аннотации?
  • Какие стратегии следует использовать при устранении этих конфликтов слияния?
  • Есть ли у пользователя GUI-инструмент для Mac, который знает, как читать эти файлы и отображать две версии бок о бок, чтобы облегчить устранение проблемы?

enter image description here

Примечание. Если это актуально, я использую клиент GUI для GitHub Mac.

+53
источник поделиться
4 ответа

Теперь лучшее решение, чем попытка прочитать маркеры таблеток, которые Git вставляет в ваши файлы. Kaleidoscope 2, второй пиксель второго пикселя своего инструмента diff, теперь также является инструментом слияния. Это не бесплатно, но прекрасно работает.

После установки Kaleidoscope 2 очень просто интегрировать с Git. Откройте калейдоскоп и в строке меню выберите Калейдоскоп > Интеграция...

Kaleidoscope's Integration menu option.

Затем вы увидите это окно. Просто выберите Git из левого навигатора, а затем установите инструмент командной строки ksdiff, а затем сделайте инструмент Kaleidoscope Git по умолчанию и объединить инструмент.

Kaleidoscope's Git Integration dialog.

Наконец, как только у вас возник конфликт слиянием в Git, просто перейдите в командную строку и выполните git mergetool. Теперь конфликт легко читается. Наслаждайтесь.

Kaleidoscope sane view for merge conflicts.

+20
источник

Все между <<<<<< и ====== происходит из версии HEAD, которая является фиксированным состоянием перед запуском операции слияния (git merge будет жаловаться, если дерево грязно, поэтому оно должно быть эквивалентно вашей рабочей каталог).

Части между ====== и >>>>>> исходят из объединенной версии. Текст после >>>>>> является комментарием коммита, введя противоречивые изменения.

То, что есть маркер конфликта, означает, что базовая версия этой части файла отличается от "новых" версий. Базовая версия (последний общий предок) не отображается.

Если вы хотите более удобное слияние и имеете графический интерфейс, я предлагаю вам взглянуть на kdiff3.

+34
источник
<<<< HEAD #Where the conflict starts

#Previous Revision

========== # The point where things look iffy

#Things that changed

>>>>> New Commit # Point where the conflict ends

Mac Xcode поставляется с FileMerge, доступ к которому можно получить в командной строке с помощью opendiff.

git mergetool -t opendiff

+16
источник

Вы можете настроить (графический) инструмент слияния и использовать этот инструмент для разрешения конфликтов.

Также посмотрите на команду git mergetool - если у вас установлен один из предустановленных инструментов или настроен какой-то другой инструмент, он откроет инструмент для разрешения http://schacon.github.com/git/git-mergetool.html

Если вас интересуют инструменты GUI, вам не нужно беспокоиться о том, что означают эти обозначения, поскольку инструмент GUI поможет вам легко сделать разрешения. Просто поймите, что части, отмеченные ===== и >>>>>, являются разделами конфликтов.

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос