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.