Windows에서 git diff가 "터미널이 완전히 작동하지 않는다"고 경고하는 이유는 무엇입니까?


111

Windows에서 msysgit 1.7.7.1 을 사용하고 있습니다. 을 사용할 때 오류가 발생 git diff합니다. 원인은 무엇입니까? msysgit에 diff 도구가 포함되어 있지 않습니까? 어떻게해야합니까?

경고 : 터미널이 완전히 작동하지 않습니다.



좋아요, msysgit은 git을 사용합니다. 그것은 일종의 이름입니다. 그래서 나는 msys를 용어로 따랐고 작동했습니다! 좋은 형식의 답변으로 설명을 게시하면 담당자에게 상을 줄 수 있습니다!
Portaljacker

powershell 실행 : $ env : Term = "xterm"
Anton Soradoi 2015-06-22

답변:


62

Git Bash의 경우 ~ / .bashrc에 다음 줄을 추가하여이 문제를 해결할 수 있습니다.

export TERM=cygwin

-또는-

export TERM=msys

첫 번째는 Windows 용 git의 원본이고 두 번째는 "치유"하는 것으로 알려진 형식입니다.

다른 프로그램 (예 : Strawberry Perl )이 TERM시스템 환경 변수를 설정하면 문제가 발생할 수 있습니다 .

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


예,하지만 git의 파일 트리에는 이러한 파일이 없습니다. 다른 대답은 효과가 있었고 의미가 있습니다.
Portaljacker

1
@Portaljacker-일했다는 의미는 무엇입니까? git bash를 닫고 다시 열고 여전히 작동하는지 확인 하시겠습니까?
manojlds

4
예, Windows에서는 set 또는 GUI (다른 답변에 표시된 고급 설정)를 통해 환경 변수를 설정하는 것이 좋습니다.
CGP

11
이 대답은 OP가 bash를 사용하고 있다고 말하지 않았기 때문에 불만족스럽고 git을 bash에서 실행해야 할 필요가 없습니다. 개인적으로 Windows 명령 프롬프트를 사용하고 해당 환경에서 작동하는 솔루션을 원합니다.
David Grayson

7
@DavidGrayson Thread necro, 알고 있지만 Windows 명령 프롬프트에서 setx TERM msys. SETX(단지 SET이 아닌) env 변수를 레지스트리에 씁니다.
rossipedia 2013

184

예를 들어 cmd.exe에 문제가있는 경우 여기에서 경고를 참조하십시오.

TERM이 올바르게 설정되지 않은 CMD.EXE

그런 다음 환경 변수를 설정하고 TERM = msys를 포함하십시오. 그 후 cmd.exe를 열 때마다 변수가 올바르게 설정됩니다.

TERM 환경 변수를 설정하는 방법

이제 쉘 (CMD.EXE)을 다시 시작해야합니다. 새로운 것을 실행하십시오. 그리고 거기에서 더 이상 문제가 없어야합니다. 다시:

올바른 TERM이 설정된 CMD.EXE


네, 확실히 그렇습니다. 나는 비스타에 있고 그것이 완전히 해결되었습니다. 텔레 볼 감사합니다!
J Cole Morrison

2
이 문제가 어디에서 왔는지 또는이 메시지가 의미하는 바를 아십니까?
Anthony Mastrean

7
@AnthonyMastrean은 터미널이 터미널 창의 다른 위치에 쓰기를 지원하지 않음을 의미합니다. Git diff는 매번 올바른 위치에 커서를 가져 오기 위해 백만 백 스페이스를 사용하지 않고 다음 화면을 작성하기 위해 창 전체에 쓰기를 원합니다.
jwg

프로그램이 변경되지 않았기 때문에 실제 문제는 터미널 지원이 아닙니다. @manojlds가 지적했듯이 TERM 변수를 기본 용어로 정의하는 다른 프로그램에 의해 git (정확히 적습니다) 어리석은 것입니다.
albfan

2
Vagrant를 사용하는 경우이 수정으로 인해 bash 셸에 문제가 발생합니다. 예 : nano가 더 이상 작동하지 않고 오류가 발생합니다. 'msys': 알 수없는 터미널 유형
Sirrah

16

위의 답변은 저에게 완전히 효과가 없었으므로 다음과 같이했습니다. 추가

export TERM=msys 

상단의 " [githome] / etc / profile "로 변경했지만 git bash에 대해서만 변경되었습니다. 그런 다음 추가했습니다

@set TERM=msys

@setlocal 다음 에 " [githome] /cmd/git.cmd "로 이동합니다 (명령 줄에서 git 실행 만 설치했습니다). 이 결정은 정말 좋지 않을 수 있지만 저에게 효과적이며 터미널 경고가 없습니다. (저는 git 버전 1.7.10.msysgit.1을 사용합니다).


2
Windows의 경우 환경 변수 TERM을 msys로 설정해야하는데, 이는 SETX를 통해 수행 할 수 있습니다.
CGP

14

솔루션 작성자가 다음과 같이 주장하는 답변은 여기 에서 찾을 수 있습니다 .

환경 변수 TERM가 다음으로 설정되었습니다.dumb

대신했다

TERM=cygwin

이를 다음으로 변경할 수 있습니다.

TERM=msys

당면한 문제를 해결합니다.


이 답변은 gitbash의 현재 세션에서만 작동하며 다른 답변으로 변경해야했습니다.
Portaljacker 2011

6

powershell에서 작업하고 내 경로에 직접 git 실행 파일이 있습니다.

제안 된 답변 중 어느 것도 효과가 없었지만 저에게 맞는 솔루션을 찾았습니다.

내 powershell 프로필에 다음 줄을 추가했습니다.

$env:TERM="msys"

나를 위해 문제를 해결했습니다.


이것은 git 버전 1.7.11.msysgit.1을 사용하여 더 이상 문제가되지 않는 것 같습니다. $ env : TERM = "msys"를 제거하고 문제없이 mercurial에서 색상 확장을 다시 활성화 할 수있었습니다.
John Weldon

다른 터미널을 사용하는 다른 응용 프로그램과의 충돌은 모든 프로그램에 영향을 미치는 환경 변수를 변경하는 대신 manojlds의 답변을 따르고 Git Bash의 자체 .bashrc에서 TERM을 설정해야하는 이유입니다.
jwg

1
@jwg 좋은 지적이지만 항상 git을 사용하고 bash보다 powershell을 선호하므로 색상 출력을 얻기 위해 bash를 실행 해야하는 것은 과잉이었습니다.
John Weldon 2013 년

일반적인 powershell 프로필 대신 cmder profile..ps1 파일에 이것을 추가했습니다.
gerrard00

6

내 경우에 빠르고 더러운 해결책은 --no-pager옵션 을 사용하는 것으로 판명되었습니다 .

기본적으로 일부 git 명령 (예 log:) less은 출력이 길다고 예상하는 경우 와 같은 호출기를 사용합니다 . 호출기에는 화살표 키를 사용하여 텍스트를 위아래로 스크롤하는 것과 같은 것이 필요합니다. 이는 현재 사용중인 터미널의 종류에 대한 가정이 잘못된 경우 작동하지 않는 경우가 있습니다 ( "완전히 작동하지 않음"이 의미 함).

출력이 짧다는 것을 미리 알고 있거나 터미널에 출력을 덤프하고 터미널 프로그램까지 스크롤을 남겨 두길 원한다면 이것을 무시하고 호출기를 전혀 사용하지 않을 수 있습니다. 예 :

git --no-pager log

0

누군가 Git Extensions에서이 시작 bash를 가져 오는 경우 Path to linux tools.... 광산은로 설정되었습니다 C:\cygwin. C:\Program Files (x86)\Git\bin\나를 위해 수정하도록 변경했습니다 . 이런 식으로 bash를 시작하기 위해 TERM 변수를 설정할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.