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