Почему в git diff на окна предупреждают, что "терминал не полностью функциональный"?


Я использую msysgit 1.7.7.1 на Windows. Я получаю ошибку при использовании git diff. Что является причиной этого? Нет ли инструмента diff, включенного в msysgit? Что же мне делать?

внимание: терминал не полностью функциональный

7 109

7 ответов:

для Git Bash это можно исправить, добавив следующую строку в~/.bashrc следующее:

export TERM=cygwin

-или-

export TERM=msys

первый, кажется, оригинал git для windows, второй-популярная известная форма для "исцеления".

проблема может быть вызвана, если какая-то другая программа (например Клубника На Perl) устанавливает TERM система окружающей среды переменная.

http://code.google.com/p/msysgit/issues/detail?id=184

Если у вас возникли проблемы в cmd.exe, например, см. предупреждение здесь:

CMD.EXE without the TERM set correctly

затем просто установите переменные среды и включите TERM=msys. После этого, каждый раз, когда вы открываете УМК.ехе, ваша переменная будет установлена правильно.

How to set your TERM environment variable

ТЕПЕРЬ ВЫ ДОЛЖНЫ ПЕРЕЗАПУСТИТЬ СВОЮ ОБОЛОЧКУ (CMD.ИСПОЛНЯЕМЫЙ.) Просто запустите новый. И оттуда у вас больше не должно быть проблем. И снова:

CMD.EXE with the correct TERM set

выше ответы не были полностью отработаны для меня, поэтому я сделал: Добавить

export TERM=msys 

на "[githome] / etc / profile " наверху, но он внес изменения только для git bash. Затем я добавил

@set TERM=msys

на "[githome]/cmd / git.cmd " после @setlocal (я установил только git run из командной строки). Может быть, это решение не очень хорошо, но оно работает для меня, и нет никаких предупреждений терминала. (Я использую git версии 1.7.10.msysgit.1).

ответ можно найти здесь, в котором автор решения утверждает, что:

переменной окружения TERM был установлен до dumb

это было вместо

TERM=cygwin

вы можете изменить это, чтобы

TERM=msys

чтобы решить проблему под рукой.

Я работаю в powershell, и у меня есть исполняемый файл git прямо на моем пути.

ни один из предложенных ответов работал, но я нашел решение, которое работает для меня.

Я добавил строку в свой профиль powershell:

$env:TERM="msys"

что исправило проблему для меня.

быстрое и грязное решение в моем случае оказалось использовать .

по умолчанию, некоторые команды git (как log) будет использовать пейджер, как less если они ожидают, что выход будет длинным. Пейджеры требуют таких вещей, как прокрутка текста вверх и вниз с помощью клавиш со стрелками, что иногда не работает, если предположения о том, какой терминал вы используете, неверны (это то, что означает "не полностью функциональный").

если вы заранее знаете, что ваш вывод будет коротким, или вы просто хотите, чтобы он сбрасывал вывод на терминал и оставлял прокрутку до вашей терминальной программы, вы можете переопределить это и вообще не использовать пейджер, например:

git --no-pager log

в случае, если кто-то получает этот запуск bash от расширений Git, проверьте настройку для Path to linux tools.... Мой был установлен на C:\cygwin. Изменение его на C:\Program Files (x86)\Git\bin\ исправил это для меня. Мне не нужно было устанавливать переменную TERM для запуска bash таким образом.