Почему git diff в Windows предупреждает, что «терминал не полностью функционален»? - PullRequest
110 голосов
/ 31 октября 2011

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

ВНИМАНИЕ: терминал не полностью функционален

Ответы [ 7 ]

184 голосов
/ 11 июня 2012

Если у вас возникли проблемы, например, в 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

59 голосов
/ 31 октября 2011

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

export TERM=cygwin

-или-

export TERM=msys

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

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

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

16 голосов
/ 15 апреля 2012

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

export TERM=msys 

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

@set TERM=msys

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

14 голосов
/ 31 октября 2011

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

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

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

TERM=cygwin

Вы можете изменить это на

TERM=msys

для решения поставленной задачи.

6 голосов
/ 30 мая 2012

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

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

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

$env:TERM="msys"

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

4 голосов
/ 25 ноября 2015

Быстрое и грязное решение в моем случае заключалось в использовании опции --no-pager.

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

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

git --no-pager log
0 голосов
/ 26 ноября 2012

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

...