2017-10-21 1 views
2

GRB의 git helpers (https://github.com/garybernhardt/dotfiles/blob/master/.githelpers)를 git 로그를 사용하여 인쇄하려고합니다.ZSH의 파이프가 Git 로그 출력에서 ​​색을 벗겨냅니다.

# 62 라인의 git log --graph --pretty="tformat:${LOG_FORMAT}" 명령은 정상적으로 작동합니다. iTerm에서 색상으로 인쇄. 그러나 그것이 pretty_git_format에 파이프되면 즉시 색이 표시되지 않습니다.

이것은 불과 몇 주 전까지 몇 년 동안 작동했습니다. zsh에서 변경된 사항이 지금 다르게 구성되어야합니까?

iTerm2 및 zsh 버전 zsh 5.4.2 (x86_64-apple-darwin16.7.0)를 사용하고 있습니다.

+0

호출기가 원시 출력을 벗어나지 않았는지 확인 했습니까 (색을 유지하기 위해)? 'git config --global core.pager 'less -R'' : https://unix.stackexchange.com/a/64932/7490 – VonC

+0

그건 아니에요. 만약 내가'git log --graph --pretty = "tformat : $ {LOG_FORMAT}"라고하더라도 | 고양이'는 색채없이 인쇄합니다. –

답변

2

git의 기본 동작은 출력이 (직접 또는 git-spawned 호출기를 통해) 터미널에 인쇄되는 경우 색상을 생성하는 것입니다. 출력이 파이프처럼 어딘가에 있으면, 자식은 색상을 끕니다. git -c color.ui=always log --graph --pretty="tformat:${LOG_FORMAT}"를 (그리고 -c 옵션이 어디로 예, 그건) :

이 같은 명령 행에 alwayscolor.ui 옵션을 설정할 수 있습니다. 이 작업을 자주 수행하려면 쉘 별칭 .gitconfig을 사용하십시오.

수 있습니다 수 있습니다 당신의 .gitconfig에서 이것을 설정, 당신은 아마 싶지 않아요. 대부분의 외부 프로그램은 색상이 꺼져 있다고 가정하고,에 설정하면 편집기 통합과 같은 도구뿐만 아니라 git의 다른 부분도 손상시킬 수 있습니다.

+1

감사합니다. 이 작동합니다. 그러나 나는 과거에 이것이 필요하지 않은 이유가 지금 왜 필요한지 궁금합니다. –

+0

@MatthewBoston -이 동일한 문제가 있습니다. '-c color.ui = always'를 추가하면 말한대로 작동하지만'pretty_git_format'의 열 서식에도 영향을 미칩니다. 너도 그걸 발견 했니? – asgeo1

1

OSX High Sierra로 업데이트하고 자작 포장 패키지를 업데이트 한 후 오늘이 일이 시작되었습니다.

Fixes since v2.14 
----------------- 

* "%C(color name)" in the pretty print format always produced ANSI 
    color escape codes, which was an early design mistake. They now 
    honor the configuration (e.g. "color.ui = never") and also tty-ness 
    of the output medium. 

그래서 나는 브라이언의 솔루션은 아마 최고의 하나라고 생각 :

나는 그것을 의심은 git log 색상의 작동 방식을 변경하는 release notes 언급 같은 최신 망할 놈의 버전 (2.15.0) 함께 할 수있는 뭔가있다 하지만 위의 설명에서 언급 한 pretty_git_format의 열 서식에 영향을주는 것으로 보입니다.

관련 문제