Я пробовал msysGit и Git на Cygwin. Оба прекрасно работают сами по себе, и оба прекрасно работают с gitk и git-gui.
Как, черт возьми, я могу настроить Mergetool? (Vimdiff работает на Cygwin, но желательно, чтобы некоторые из наших коллег, любящих Windows, хотели бы что-то более удобное для пользователя.)
Ответы:
Чтобы проконтролировать ответ Чарльза Бэйли, вот моя настройка git, использующая p4merge (бесплатный кроссплатформенный инструмент 3way merge); проверено на msys Git (Windows) установить:
или, из оболочки Windows cmd.exe, вторая строка становится:
Изменения (по отношению к Чарльзу Бейли):
Загрузить: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
РЕДАКТИРОВАТЬ (февраль 2014 г.)
Как отметил @Gregory Pakosz , последняя версия msys git теперь «изначально» поддерживает p4merge (протестировано на 1.8.5.2.msysgit.0 ).
Вы можете отобразить список поддерживаемых инструментов, выполнив:
Вы должны увидеть p4merge в доступном или действительном списке. Если нет, пожалуйста, обновите ваш мерзавец.
Если p4merge был указан как доступный , он находится в вашем PATH, и вам нужно только установить merge.tool :
Если он был указан как действительный , вы должны определить mergetool.p4merge.path в дополнение к merge.tool :
~
следует расширить до домашнего каталога текущего пользователя (так что теоретически путь должен быть~/AppData/Local/Perforce/p4merge.exe
), это не сработало для меня$LOCALAPPDATA/Perforce/p4merge.exe
), git, похоже, не расширяет переменные среды для путей (если вы знаете, как это работает, пожалуйста, дайте мне знать или обновите этот ответ)источник
mergetool.p4merge.cmd
больше не будет работать, так как Git начал пытаться поддерживать p4merge, смlibexec/git-core/git-mergetool--lib
. вместо этого он непосредственно используетmergetool.p4merge.path
cmd = \""c:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
на компьютере с Windows 7настройка mergetool.p4merge.cmd больше не будет работать, так как Git начал пытаться поддерживать p4merge, см. libexec / git-core / git-mergetool--lib.so нам просто нужно указать путь mergetool для git, например, p4merge:
Тогда это будет работать.
источник
Я использую Portable Git на WinXP (работает угощение!), И мне нужно было разрешить конфликт, возникший при ветвлении. Из всех графических интерфейсов , которые я проверял, KDiff3 оказался наиболее прозрачным в использовании.
Но в этом посте блога я нашел инструкции, необходимые для работы в Windows , инструкции, которые немного отличаются от других подходов, перечисленных здесь. В основном это означало добавление этих строк в мой
.gitconfig
файл:Работаю хорошо сейчас!
источник
path = C:\\Program Files (x86)\\KDiff3\\kdiff3.exe
(обратите внимание на двойную обратную косую черту)При Cygwin единственное , что сработало для меня, это следующее:
Также мне нравится отключать сообщение для difftool:
источник
git mergetool
полностью настраивается, так что вы можете в значительной степени выбрать свой любимый инструмент.Полная документация находится здесь: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
Вкратце, вы можете установить mergetool по умолчанию, установив переменную конфигурации пользователя
merge.tool
.Если инструмент слияния является одним из тех, которые поддерживаются им изначально, вам просто нужно указать
mergetool.<tool>.path
полный путь к инструменту (замените<tool>
тем, что вы настроилиmerge.tool
.В противном случае вы можете установить
mergetool.<tool>.cmd
бит оболочки для оценки во время выполнения с переменными оболочки,$BASE, $LOCAL, $REMOTE, $MERGED
установленными в соответствующие файлы. Вы должны быть немного осторожны с экранированием, независимо от того, редактируете ли вы файл конфигурации напрямую или задаете переменную с помощьюgit config
команды.Нечто подобное должно дать представление о том, что вы можете сделать («mymerge» - вымышленный инструмент).
После того, как вы настроили ваш любимый инструмент слияния, вам нужно просто запустить его,
git mergetool
когда у вас возникнут конфликты.Инструмент p4merge от Perforce является довольно хорошим автономным инструментом слияния.
источник
Для сравнения на Windows 7
источник
Похоже, что новые версии git поддерживают p4merge напрямую, поэтому
должно быть все, что вам нужно, если p4merge.exe находится на вашем пути. Не нужно настраивать cmd или путь.
источник
Как уже было сказано здесь (и здесь, и здесь ), mergetool - это команда для настройки этого. Для хорошего графического интерфейса я рекомендую kdiff3 (GPL).
источник
Мне пришлось отказаться от лишних цитат с помощью msysGit на Windows 7, не знаю почему.
источник
Если вы делаете это через cygwin, вам может понадобиться использовать cygpath:
источник
Бах, это наконец-то сработало для меня (Windows 7 + Cygwin + TortoiseMerge):
В .git / config:
Спасибо предыдущим постерам за подсказку по использованию cygpath!
источник
я использую приложение под названием WinMerge ( http://winmerge.org/ ) из их руководства ( http://manual.winmerge.org/CommandLine.html )
это скрипт bash, который я использую из
mergetool
директивы через.gitconfig
в основном bash учитывает, когда результат diff в пустом файле, и создает новый временный файл в правильном месте.
источник
Я нашел два способа настроить « SourceGear DiffMerge » как difftool и mergetool в Windows GitHub.
Следующие команды в окне командной строки обновят ваш .gitconfig для настройки GIT с использованием DiffMerge:
[ ИЛИ ]
Добавьте следующие строки в ваш .gitconfig. Этот файл должен находиться в вашем домашнем каталоге в C: \ Users \ UserName:
источник
Вы также можете добавить эти опции:
Кроме того, я не знаю, почему, но цитата и удар из ответа Милана Гардиана испортили мне жизнь.
источник
Если кто-то хочет использовать gvim в качестве инструмента сравнения в TortoiseGit, то вам необходимо ввести текст для ввода пути к внешнему инструменту сравнения:
источник
Для IntelliJ IDEA (Community Edition) 3-х сторонняя конфигурация git mergetool в среде Windows (
~/.gitconfig
)Cygwin
Msys
Файл ~ / winpath.sh предназначен для преобразования путей в Windows в msys и взят из вопроса о преобразовании путей msys в stackoverflow
источник
Чтобы настроить p4merge, установленный с помощью chocolatey на windows для слияния и сравнения, посмотрите здесь: https://gist.github.com/CamW/88e95ea8d9f0786d746a
источник
Если у вас возникли проблемы с открытием p4merge из SourceTree, найдите локальный файл конфигурации с именем config в MyRepo.git и удалите любую конфигурацию слияния. В моем случае он пытался открыть Мелд, который я только что удалил
источник