Какой лучший инструмент для визуального слияния для Git?

Какой лучший инструмент для просмотра и редактирования слияния в Git? Я хотел бы получить 3-стороннее представление слияния с "моими", "их" и "предком" в отдельных панелях и четвертой панелью "output".

Кроме того, инструкции для вызова указанного инструмента будут отличными. (Я до сих пор не знаю, как запустить kdiff3 таким образом, чтобы он не дал мне ошибку.)

Моя ОС - Ubuntu.

+559
источник поделиться
18 ответов

Meld - бесплатный инструмент для различий/слияния с открытым исходным кодом и кроссплатформенный (UNIX/Linux, OSX, Windows).

Вот как это установить:

  • Ubuntu
  • Mac
  • Windows: "Рекомендованная версия Meld для Windows является самой последней версией, доступной в виде MSI от http://meldmerge.org"
+320
источник

Вы можете настроить свой собственный инструмент слияния, который будет использоваться с "git mergetool".

Пример:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

И пока вы на нем, вы также можете настроить его как ваш diffftool для "git difftool":

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

Обратите внимание, что в Unix/Linux вы не хотите, чтобы $BASE обрабатывался как переменная вашей оболочкой - он должен действительно отображаться в вашем файле ~/.gitconfig, чтобы это работало.

+86
источник
другие ответы

Связанные вопросы


Похожие вопросы

Beyond Compare 3, мой любимый, имеет merge в версии Pro. Хорошая вещь с ее слиянием состоит в том, что она позволяет видеть все 4 вида: базовый, левый, правый и объединенный результат. Это несколько менее визуально, чем P4V, но более чем WinDiff. Он интегрируется со многими источниками управления и работает в Windows/Linux. Он имеет множество функций, таких как расширенные правила, выпуски, ручное выравнивание...

Визуальный клиент Perforce (P4V) - это бесплатный инструмент, который обеспечивает один из самых явных интерфейсов для слияния (см. несколько скриншотов). Работает на всех основных платформах. Мое главное разочарование в этом инструменте - это своего рода интерфейс "только для чтения". Вы не можете вручную редактировать файлы, и вы не можете вручную выровнять их.

PS: P4Merge включен в P4V. Perforce пытается сделать это немного сложнее, чтобы получить свой инструмент без своего клиента.

SourceGear Diff/Merge может быть моим вторым выбором свободного инструмента. Проверьте, что merge screenshot-shot, и вы увидите, что он имеет по крайней мере 3 вида.


Meld - это новый бесплатный инструмент, который я бы предпочел использовать SourceGear Diff/Merge: теперь также работающий на большинстве платформ (Windows/Linux/Mac) с явным преимуществом, поддерживающим некоторый источник управления, например Git. Таким образом, вы можете немного отличить историю от всех файлов. Слияние (см. снимок экрана) имеет только 3 панели, как и SourceGear Diff/Merge. Это усложняет процесс слияния в сложных случаях.

PS: Если один инструмент в один прекрасный день поддерживает 5 просмотров, слияние, это было бы действительно потрясающе, потому что если вы забираете вишню в Git, у вас действительно нет одной базы, кроме двух. Две базы, два изменения и одно результирующее слияние.

+62
источник

Мой любимый инструмент визуального слияния SourceGear DiffMerge

  • Это бесплатно.
  • Кросс-платформенная (Windows, OS X и Linux).
  • Чистый визуальный интерфейс
  • Все функции разлома, которые вы ожидаете (Diff, Merge, Folder Diff).
  • Интерфейс командной строки.
  • Полезные сочетания клавиш.

User interface

+42
источник

Я слышал хорошие вещи о kdiff3.

+38
источник

vimdiff

Как только вы изучите vim (и, по-моему, вам следует), vimdiff - это еще одна красивая маленькая ортогональная концепция для изучения. Чтобы получить онлайн-справку в vim:

:help vimdiff 

Этот вопрос описывает, как его использовать: как мне использовать vimdiff для разрешения конфликта?

enter image description here

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

+28
источник

Вы можете попробовать P4Merge.

Визуализируйте различия между версиями файлов с P4Merge. Устранение конфликтов, возникающих в результате параллельной или параллельной разработки с помощью цветового кодирования.

Функции включают:

  • Выделение и редактирование различий текстовых файлов
  • Выберите, чтобы включать или игнорировать окончания строк или пробелы.
  • Признать соглашения о завершении строки для Windows (CRLF), Mac (CR) и Unix (LF)
  • Использовать параметры командной строки и запуска из приложений, не поддерживающих Perforce.
  • Отображать номера строк при сравнении и слиянии файлов
  • Исключить файлы, которые были изменены, уникальны или не изменены
  • Фильтровать файлы по имени или расширению
  • Организовать измененные активы в знакомой иерархии файлов/папок
  • Сравните JPEG, GIF, TIFF, BMP и другие форматы файлов.
  • Расширить использование Qt API
  • Наложение изображений или отображение бок о бок
  • Выделите отличия от наложенных изображений
+22
источник

IntelliJ IDEA имеет изощренный инструмент разрешения конфликтов слияния с волшебной палочкой Resolve, которая значительно упрощает слияние:

Source: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

+17
источник

Diffuse - мой любимый, но, конечно, я предвзятый.:-) Это очень легко использовать:

$ diffuse "mine" "output" "theirs"

Diffuse - это небольшой и простой инструмент для слияния текста, написанный на Python. С помощью Diffuse вы можете легко объединять, редактировать и просматривать изменения в своем коде. Diffuse - бесплатное программное обеспечение.

+15
источник

Araxis Merge http://www.araxis.com/merge Я использую его на Mac OS X, но я использовал его на Windows... это не бесплатно... но у него есть некоторые приятные функции... приятнее на окна хотя.

+12
источник

Если вы просто ищете инструмент diff за пределами сравнения, это довольно приятно: http://www.scootersoftware.com/moreinfo.php

+7
источник

Вы можете изменить инструмент, используемый git mergetool, передав git mergetool -t=<tool> или --tool=<tool>. Чтобы изменить значение по умолчанию (из vimdiff), используйте git config merge.tool <tool>.

+7
источник

Итак, для слияния git вы можете попробовать:

  • DiffMerge для визуального сравнения и объединения файлов в Windows, OS X и Linux.

    DiffMerge

  • Meld - инструмент визуального разграничения и слияния.

    Meld - инструмент визуального разграничения и слияния

  • KDiff3, программа diff и merge), которая сравнивает или объединяет 2 или 3 текстовых входных файла /dirs.
  • opendiff (часть Xcode Tools на macOS), утилита командной строки, которая запускает приложение FileMerge из терминала для графического сравнения файлов или каталогов, включая слияние.
+2
источник

Я пробовал много инструментов, упомянутых здесь, и ни один из них не был тем, что я ищу.

Лично я нашел Atom, чтобы стать отличным инструментом для визуализации различий и разрешения конфликтов/слияния.

Что касается слияния, то нет трех видов, но все они объединены в один с цветной подсветкой для каждой версии. Вы можете редактировать код напрямую или есть кнопки, чтобы использовать любую версию этого фрагмента, который вы хотите.

Я даже не использую его как редактор или IDE больше, просто для работы с git. Чистый пользовательский интерфейс и очень прямолинейный, плюс он очень настраиваемый.

  • Вы можете запустить его из командной строки и передать в один файл, который хотите открыть или добавить папку проекта (git repo).

    • Я бы также рекомендовал project-manager как очень удобный способ перемещаться между проектами, не заполняя свое древовидное представление.
  • Единственная проблема, с которой я столкнулся, - это обновление - при работе с большими репозиториями атом может медленно обновлять изменения, которые вы делаете вне его. Я просто закрываю его, когда закончил, а затем снова открываю, когда хочу снова просмотреть свои изменения/совершить. Вы также можете перезагрузить окно с помощью ctrl + shift + f5, который занимает только секунду.

И это бесплатно, конечно.

+2
источник

Я использую разные инструменты для слияния и сравнения:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

Кулак может быть вызван:

git difftool [BRANCH] -- [FILE or DIR]

Второй вызывается при использовании git mergetool.

+2
источник

Вы можете установить средство ECMerge diff/merge tool на вашем Linux, Mac или Windows. Он предварительно настроен в Git, поэтому просто используя git mergetool выполнит задание.

+1
источник

Если вы используете визуальную студию, встроенный инструмент Team Explorer - очень хороший инструмент для разрешения конфликтов git слияния.

0
источник

gitx http://gitx.frim.nl/

Некоторые ошибки при работе с большими наборами фиксаций, но отлично подходят для просмотра изменений и выбора различных изменений на этапе, а затем для фиксации.

-1
источник

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