Почему git diff на Windows предупреждает, что "терминал не полностью работоспособен"?
Я использую msysgit 1.7.7.1 в Windows. При использовании git diff
я получаю сообщение об ошибке. Чем это вызвано? Нет ли средства diff, включенного в msysgit? Что мне делать?
ПРЕДУПРЕЖДЕНИЕ: терминал не работает полностью
Ответы
Ответ 1
Для Git Bash это можно устранить, добавив следующую строку в ~/.bashrc:
export TERM=cygwin
-или -
export TERM=msys
Первый, по-видимому, является оригиналом Git для окон, второй - популярной известной формой для "лечения".
Проблема может быть вызвана, если какая-либо другая программа (например, Strawberry Perl) устанавливает переменные среды TERM
.
http://code.google.com/p/msysgit/issues/detail?id=184
Ответ 2
Если у вас есть проблемы с cmd.exe, например, см. предупреждение здесь:
![CMD.EXE without the TERM set correctly]()
Затем просто установите переменные среды и включите TERM = msys. После этого каждый раз, когда вы открываете cmd.exe, ваша переменная будет установлена правильно.
![How to set your TERM environment variable]()
ТЕПЕРЬ ВЫ ДОЛЖНЫ ОТПРАВИТЬ ВАШУ ОБОЛОЧКУ (CMD.EXE). Просто запустите новый. И оттуда у вас больше не будет проблем. Опять же:
![CMD.EXE with the correct TERM set]()
Ответ 3
Выше ответы не были полностью сработаны для меня, поэтому я сделал:
Добавить
export TERM=msys
до " [githome]/etc/profile" вверху, но он вносил изменения только для git bash. Затем я добавил
@set TERM=msys
to " [githome]/cmd/ git.cmd" после @setlocal (я установил только git запустите из командной строки). Может быть, это решение не очень хорошее, но оно работает для меня, и никаких предупреждений о терминах нет. (Я использую git версию 1.7.10.msysgit.1).
Ответ 4
Ответ можно найти здесь, в котором автор решения утверждает, что:
переменная среды TERM
была установлена на dumb
вместо
TERM=cygwin
Вы можете изменить это на
TERM=msys
чтобы решить проблему.
Ответ 5
Я работаю в powershell, и у меня есть исполняемый файл git непосредственно на моем пути.
Ни один из предложенных ответов не работал, но я нашел решение, которое работает для меня.
Я добавил строку в свой профиль powershell:
$env:TERM="msys"
Это исправило проблему для меня.
Ответ 6
Быстрое и грязное решение в моем случае оказалось для использования опции --no-pager
.
По умолчанию некоторые команды git (например, log
) будут использовать пейджер типа less
, если они ожидают, что результат будет длинным. Пейджеры требуют таких вещей, как прокрутка текста вверх и вниз с помощью клавиш со стрелками, которые иногда не работают, если предположения о том, какой терминал вы используете, являются неправильными (это значит, что это означает "не полностью функциональный" ).
Если вы заранее знаете, что ваш результат будет коротким, или вы просто хотите, чтобы он выгружал вывод на терминал и оставлял прокрутку до вашей программы терминала, вы можете переопределить это, а не использовать пейджер вообще, например
git --no-pager log
Ответ 7
Если кто-то получит этот запуск bash из Git Extensions, проверьте настройку Path to linux tools...
. Мой был установлен на C:\cygwin
. Меняя его на C:\Program Files (x86)\Git\bin\
, я исправил его для меня. Мне не нужно было устанавливать переменную TERM для запуска bash таким образом.