Почему 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 таким образом.