Мне иногда приходится делать git merges на консоли. До сих пор для разрешения конфликтов я использовал FileMerge Xcode 3 (его можно открыть на консоли с помощью команды «opendiff»). Если возникают конфликты, я использую 'git mergetool', который автоматически вызывает opendiff для каждого из конфликтующих файлов.
Тем не менее, Xcode 4 имеет гораздо более приятный компонент mergetool для разрешения конфликтов. Я полагаю, что этот компонент является частью исполняемого файла Xcode 4, а не автономным. Он позволяет вам предварительно просмотреть объединенный файл и напрямую редактировать объединенный код в каждом конкретном случае, что делает объединение сложных конфликтов невероятно быстрым и удовлетворительным.
Есть ли способ использовать mergetool Xcode 4 при вызове «git mergetool» из Терминала?
Я не могу найти исполняемый файл для этого инструмента внутри пакета Xcode 4. Любой взлом, который достигнет этого, будет приветствоваться.
Ответы:
opendiff принимает два аргумента имени файла и параметр --ancestor с третьим именем файла для создания трехстороннего сравнения и параметр --merge, чтобы указать выходной файл, который будет использоваться для разрешения конфликта.
Итак, поехали:
Это должно заставить git использовать opendiff в качестве инструмента слияния, когда возникают конфликты слияния.
Тем не менее, я ОЧЕНЬ предпочитаю DiffMerge от SourceGear , который представляет собой бесплатный инструмент для различий и трехстороннего слияния, который обеспечивает гораздо лучшее, ориентированное на слова решение конфликтов. А в документации DiffMerge есть, что сказать git, чтобы сделать его инструментом по умолчанию для сравнения и слияния.
источник
Вы можете редактировать в (очень простом) текстовом редакторе в FileMerge, открыв панель редактора, которая по умолчанию закрыта. Чтобы открыть редактор в FileMerge, перетащите точку под центральным столбцом diff вверх, чтобы открыть панель редактора.
источник
Это в конечном итоге работает на меня
источник