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

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

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

моя ОС-Ubuntu.

18 ответов


объединить является инструментом diff/merge.

вот как установить его на:

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

вы можете настроить свой собственный инструмент слияния, чтобы использоваться с "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

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

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

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


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

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

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

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


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

PS: Если один инструмент один день поддерживает 5 Просмотров слияния, Это было бы действительно здорово, потому что если вы cherry-pick commits в Git, у вас действительно не одна база, а две. Две базы, две изменения, и в результате слияния.


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

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

User interface


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


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

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

функции включают в себя:

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

vimdiff

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

:help vimdiff

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


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

$ diffuse "mine" "output" "theirs"

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


Araxis Слияния http://www.araxis.com/ Я использую его на Mac OS X, но я использовал его на windows... это не бесплатно... но у него есть некоторые приятные черты... лучше на окнах, хотя.


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


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


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

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


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


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

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

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

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

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

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

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


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

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

кулак можно назвать:

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

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


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


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

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

    DiffMerge

  • объединить, является визуальным инструментом diff и merge.

    Meld is a visual diff and merge tool

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

gitx http://gitx.frim.nl/

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