모든 git 명령에서 컬러 출력을 얻으려면 다음을 설정했습니다.
git config --global color.ui true
그러나 이렇게 하면 다음과 같은 출력이 생성됩니다 git diff
.git log
그리고 show와 같은 명령이 git status
좋을 것입니다
특정 명령에서 이스케이프된 색상 코드만 인식하지 못하는 이유와 해결 방법은 무엇입니까?
저는 xterm-256color
OS X 10.8.2에서 iTerm 2(터미널 유형)를 사용하고 있으며 쉘로는 zsh를 사용하고 있습니다.
zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)
git --version
git version 1.7.9.6 (Apple Git-31.1)
답변1
이스케이프 시퀀스는 터미널에 디스플레이 색상을 변경하라고 지시하고 이스케이프 문자는 로 나타나며 ESC
원하는 동작은 이스케이프 시퀀스가 의도한 효과를 갖는 것임을 알 수 있습니다.
및 파이프 와 같은 git diff
명령은 git log
출력을휴대용 소형 무선 호출기,less
기본적으로. Git은 제어 문자에게 제어 효과를 발휘할 수 있도록 지시하려고 시도 less
하지만 작동하지 않습니다.
less
그것이 귀하의 호출기이지만 LESS
환경 변수를 -r
or 가 포함되지 않은 값 으로 설정한 경우 git은 색상을 표시하라고 -R
말할 수 없습니다 . less
일반적으로 통과 LESS=-FRSX
하지만 LESS
환경에 설정된 경우에는 통과하지 않습니다. 해결 방법은 호출 시 색상을 표시하도록 git에 지시하는 -R
옵션을 명시적으로 전달하는 것입니다.less
git config --global core.pager 'less -R'
less
호출기가 아닌 경우 호출기로 전환 하거나 less
호출기 표시 색상을 만드는 방법을 알아보세요.
호출기를 호출할 때 Git이 색상을 표시하지 않도록 하려면 대신 color.ui
으로 설정하세요 .auto
true
답변2
다음이 있는 경우에도 이 출력을 볼 수 있습니다.바쁜 상자.알파인 리눅스그것을 사용한 대중적인 배포판의 좋은 예입니다. 바라보다https://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#How_to_enable.2Ffix_colors_for_git.3F
현재 Busybox를 사용하고 있는지 확인하는 쉬운 방법은 다음을 실행하는 것입니다.
realpath `which less`
아니면 당신이 사용하는 경우생선 껍질
realpath (which less)
출력이 다음과 같은 경우 /bin/busybox
설치하여 문제를 해결할 수 있습니다.덜 누.
알프스에서:
sudo apk --update add less
명령은 배포/패키지 관리자에 따라 다릅니다.
답변3
개선된 자일스'답변, git config에서 사용하여 이전 $LESS
옵션(예: git config)을 유지할 수 있습니다 ~/.gitconfig
.
[core]
pager = less -+$LESS -FRX