Git Mergetool: объединение файлов не требуется

Я пытаюсь настроить git mergetool с помощью vimdiff на Cygwin. Я установил инструмент в моей конфигурации git, используя:

git config --global merge.tool vimdiff

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

git mergetool

Я получаю: «Файлы не нуждаются в объединении», хотя статус git ясно показывает, что у меня есть неслитный путь.

На SO есть несколько сообщений с похожими проблемами, но мне не удалось решить эту проблему ни с одним из решений для других вопросов. Я также удалил все строки моего .gitconfig, кроме git mergetool, и аналогичным образом я удалил все строки моего vimrc. Есть ли какой-то другой файл конфигурации или какой-то пакет, который мне нужен (напомню, я использую Cygwin), чтобы заставить git mergetool открывать vimdiff? Что мне не хватает? Это тривиальная задача в Linux.


person mjellis1687    schedule 22.03.2017    source источник


Ответы (1)


Во-первых, вы можете попробовать последнюю версию Git 2.12.1 для Windows (без потребность в Cygwin: в этом дистрибутиве есть собственный bash), чтобы проверить, сохраняется ли проблема.

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

Наконец, не забудьте использовать git mergetool в правильном пути.

person VonC    schedule 22.03.2017
comment
Действительно, использование Git 2.12.1 для WIndows из коробки позволяет мне использовать git mergetool в Windows, в то время как в Cygwin git mergetool возвращает Нет файлов, которые нужно объединять. Обратите внимание, что я не имею дело с файлами, уже зафиксированными с помощью маркеров слияния, и я вызываю git mergetool по правильному пути. Я использую Cygwin для разработки, поэтому я бы предпочел выяснить, почему я не могу сделать то же самое с git Cygwin. - person mjellis1687; 22.03.2017
comment
@ mjellis1687 mjellis1687 Будет ли достаточно git bash для ваших нужд разработки? - person VonC; 22.03.2017
comment
@ mjellis1687 mjellis1687, какая версия git для развертывания в Cygwin? - person VonC; 22.03.2017
comment
У Cygwin есть git 2.8.2-1 и 2.8.3-1. На данный момент у меня 2.8.3-1, хотя я уже пробовал обе версии. Мое понимание git bash заключается в том, что это минимальная среда Unix, в которой нет всех пакетов, которые есть у Cygwin, поэтому я полагаю, что один из обходных путей - использовать Cygwin и использовать git mergetool в Git bash, но это не кажется чрезвычайно эффективным . - person mjellis1687; 22.03.2017
comment
@ mjellis1687 другой подход, с Windows 10, заключается в использовании bash в Ubuntu на Widnows: msdn.microsoft.com/en-us/commandline/wsl/about Он содержит большинство необходимых вам пакетов. - person VonC; 22.03.2017
comment
@mjellis1687 Если нет, перекомпилируйте Git в Cygwin: gizmoplex.com/wordpress/ или (позднее) gist.github.com/patrikbeno/ 92ec81e12896931b3f69 - person VonC; 22.03.2017
comment
Очень хорошо. Я могу дать перекомпиляцию Git, но пока я буду переключаться между средами (Cygwin и Git bash). Спасибо за ссылку на bash на Ubuntu в Windows. - person mjellis1687; 23.03.2017