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

StackOverflow https://stackoverflow.com/questions/137102

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

Моя ОПЕРАЦИОННАЯ система - Ubuntu.

Это было полезно?

Решение

Слияние это инструмент для разделения / слияния.

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

Другие советы

Вы можете настроить свой собственный инструмент слияния для использования с "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, мой любимый, имеет слияние функциональность в Профессиональная версия.Хорошая вещь в его слиянии заключается в том, что оно позволяет вам видеть все 4 вида:базовый, левый, правый и объединенный результат.Это несколько менее наглядно, чем P4V но гораздо больше, чем ВинДифф.IT интегрируется со многими системами управления версиями и работает на Windows / Linux.Он имеет множество функций, таких как расширенные правила, редакции, ручное выравнивание...

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

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

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


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

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

Мой любимый инструмент визуального слияния - это Исходный код DiffMerge

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

User interface

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

вимдифф

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

:help vimdiff 

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

enter image description here

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

Ты можешь попробовать P4Merge ( Р4Мердж ).

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

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

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

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

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

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

$ diffuse "mine" "output" "theirs"

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

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

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

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

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

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

    DiffMerge

  • Слияние, представляет собой инструмент визуального разделения и слияния.

    Meld is a visual diff and merge tool

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

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

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

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

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

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

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

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

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

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

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

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

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

Second вызывается, когда вы используете git mergetool.

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

gitx http://gitx.frim.nl/

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top