Я использую msysgit 1.7.7.1 в Windows. Я получаю ошибку при использовании git diff
. Чем это вызвано? В msysgit нет инструмента сравнения? Что я должен делать?
ВНИМАНИЕ: терминал не работает полностью
Я использую msysgit 1.7.7.1 в Windows. Я получаю ошибку при использовании git diff
. Чем это вызвано? В msysgit нет инструмента сравнения? Что я должен делать?
ВНИМАНИЕ: терминал не работает полностью
Ответы:
Для Git Bash это можно исправить, добавив следующую строку в ~ / .bashrc:
export TERM=cygwin
-или-
export TERM=msys
Первый кажется оригинальным от git для Windows, второй также является популярной известной формой «исцеления».
Проблема может возникнуть, если какая-то другая программа (например, Strawberry Perl ) устанавливает TERM
переменные системного окружения.
setx TERM msys
. SETX
(в отличие от просто SET) записывает переменную env в реестр.
Если у вас возникли проблемы, например, с cmd.exe, см. Предупреждение здесь:
Затем просто установите переменные среды и включите TERM = msys. После этого каждый раз, когда вы открываете cmd.exe, ваша переменная будет устанавливаться правильно.
ТЕПЕРЬ ВЫ ДОЛЖНЫ ПЕРЕЗАГРУЗИТЬ СВОЮ ОБОЛОЧКУ (CMD.EXE). Просто запустите новый. И оттуда у вас больше не должно быть проблем. Очередной раз:
Вышеуказанные ответы не были полностью сработаны для меня, поэтому я сделал: Добавить
export TERM=msys
на " [githome] / etc / profile " вверху, но он внес изменения только для git bash. Затем я добавил
@set TERM=msys
на " [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 таким образом.