!["git show"는 파이프를 통해 색상 문자를 제어하지 않습니다.](https://linux55.com/image/113708/%22git%20show%22%EB%8A%94%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%83%89%EC%83%81%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%A0%9C%EC%96%B4%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
git-show 결과 목록을 출력하고 호출기로 연결하려고 합니다.
안타깝게도 색상을 보존할 수 없습니다.
이것은 내가 실행 중인 명령입니다.
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show {}' -- | less -MR
파이프가 없으면 | less -MR
출력이 컬러로 인쇄됩니다.
나는 또한 그것을 시도했지만 less -r
분명히 문제는 출력이 다른 명령으로 파이프되는 것을 감지했을 때 색상을 유지하지 않는 git show
것 같습니다 .xargs
stdout
설명서 xargs
에도 색상 유지에 대한 언급이 없습니다 git
.
less
호출기 출력에서 색상을 유지하는 방법은 무엇입니까 ?
답변1
man git-show
man git-diff
색상 보존을 강제하는 방법에 대해 설명합니다 . 다음에서 가져온 것 같습니다 .
--color[=<when>]
Show colored diff. --color (i.e. without =<when>) is the same as --color=always. <when> can be one of always, never, or auto.
업데이트된 bash 명령:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show --color=always {}' -- | less -MR