Можно ли просматривать git diffs, используя инструмент GUI side-by-side на Mac?
Мне очень не нравится визуализировать diff, используя инструмент UNIX diff
по умолчанию. Можно ли просматривать представление git diffs с помощью инструмента GUI, который будет хорошо отображать локальный и удаленный бок о бок, аналогично тому, как можно установить mergetool
как DiffMerge
, а когда вы делаете
git mergetool myfile.txt
он отображает графический интерфейс DiffMerge для упрощения визуализации и слияния? Я использую OSX.
Ответы
Ответ 1
Вы можете использовать opendiff
. Это инструмент командной строки, который открывает графический интерфейс FileMerge.
Вы можете указать Git использовать его автоматически для git-mergetool
с помощью:
git config --global merge.tool opendiff
Если вы хотите его и для git-difftool
:
git config --global diff.tool opendiff
И вы также можете отключить запрос для каждого файла с помощью
git config --global difftool.prompt false
Для получения дополнительной информации введите: git help config
и выполните поиск с помощью /
для разных параметров.
P.S. Если у вас нет установленного opendiff
, вы можете установить его вместе с инструментами разработчика из XCode: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/opendiff.1.html
UPDATE. В последних версиях XCode FileMerge теперь поставляется с XCode. Вы не можете установить FileMerge как отдельную программу. opendiff
все еще находится в утилитах командной строки, которые являются автономными.
Ответ 2
P4Merge от Perforce довольно хорош, и автономное приложение P4Merge бесплатное. Вы можете получить его на http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Кроме того, если вы используете SublimeText, чем http://www.sublimerge.com/, это также хороший инструмент.
Ответ 3
Если у вас есть два разных файла, WinMerge делает очень хорошее сравнение бок о бок. Я не знаю, доступно ли это для платформ, отличных от Windows. Кроме того, некоторые системы позволят вам выбрать свой собственный инструмент сравнения, в то время как другие жестко закодированы для чего-то конкретного - я не знаю о вашей среде Git.