Git 예쁜 형식 색상


81

Git에 예쁜 형식 색상을 설정하려고합니다. 버전 1.6.0은 빨간색, 녹색, 파란색 만 인식합니다.

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

또한 어떤 색상도 괄호로 묶인 색상 형식으로 작동하지 않습니다.

Git에 사용 가능한 예쁜 형식 색상을 나열하는 방법이 있습니까?

불행히도 이것은 레거시 SCO OpenServer 5.0.7 시스템에 있으며 SCO Skunkworks에서 출시 한 Git의 마지막 버전은 1.6.0.3이었습니다.


1
플랫폼이 구식 인 경우 git-scm.com에서 최신 git 1.8.x를 다운로드하여 직접 컴파일하지 않으시겠습니까? 그런 다음 모든 최신 기능을 지원합니다.
mvp

@mvp 글쎄요, 당신이 말했듯이, 플랫폼은 구식입니다-GNU 빌드 환경이 없다는 것을 의미합니다. Linux로 마이그레이션하기 위해 기존 애플리케이션 소스 코드를 준비하고 있습니다.
James Allman 2013 년

Git 2.3.0 (2015 년 2 월)은 24 비트 색상 값을 허용하고 색상 속성 (굵게, 밑줄 등)을 더 잘 관리 할 수 ​​있습니다. 아래 내 대답을
VonC

Git 2.26 (Q1 2020)은 밝은 aixterm 색상을 지원하기 위해 "bright"속성을 추가합니다. 참조 아래 내 편집 대답을
VonC

답변:


144

나는 이전 버전이 없습니다 git이외의 색상을 확인하는 red, blue그리고이 green지원됩니다.

한 가지 내가 심지어의 최신 버전으로 발견,하지만 git(내가 사용 1.7.10 같은)보다 다른 색상입니다 red, green그리고 blue괄호 안에해야합니다 (). 를 들어 red, greenblue, 괄호는 선택 사항입니다.

그래서 이것을 시도해보십시오.

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

색상의 목록 나는 적어도 알고 있어요은 다음과 같습니다 :

normal
black
red
green
yellow
blue
magenta
cyan
white

다음 속성 중 하나와 결합 할 수 있습니다.

bold
dim
ul
blink
reverse
italic
strike
bright  # (Git 2.26, Q1 2020, example: brightred)

를 사용하여 색상을 변경하려는 경우 전경색배경색의.gitconfig 두 가지 색상을 지정할 수 있어야 하며 속성과 결합 할 수 있습니다.


원색 만 지원한다는 점에서 당신이 옳다고 믿습니다. 이 버전 (1.6.0.3)에서는 괄호 안의 색상 형식이 전혀 작동하지 않습니다.
James Allman

16
이 %의 C와 같은 공간에 별도의 전경, 배경 및 특성 (적색, 녹색 굵은)
HexInteractive

적어도 두 가지 다른 속성 이 있습니다. 여기 git-scm.com/docs/git-config 매뉴얼에 쓰여진 이탤릭체스트라이크 , 그리고 완성도 때문입니다.
onemorequestion

1
@onemorequestion 문제 없습니다. 나는 그에 따라 대답을 편집했습니다. 그건 그렇고 다른 답변 ( stackoverflow.com/a/61487052/6309 )을 정말 좋아했습니다 .
VonC

40

Git 2.3.0 (2015 년 2 월)은 다음을 허용합니다 ( Jeff Kink ( peff) 덕분에 ) :


parse_color: 24 비트 RGB 값 지원

XTerm과 같은 일부 터미널은 일반 ANSI 색 구성표의 확장을 사용하여 전체 24 비트 RGB 색 사양을 허용합니다.
사용자가 16 진수 RGB 색상을 지정 하여 핫 핑크 참조 장식의 가장 중요한 기능을 활성화 할 수 있습니다 .

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • 더 나은 색상 속성 관리 :

parse_color: 속성 no$foo을 지우려면 " " 인식$foo

색상 사양에 "reverse"를 입력하여 "reverse"와 같은 ANSI 텍스트 속성을 켤 수 있습니다. 그러나 리버스 해제를 요청할 수는 없습니다.

일반적인 경우에는 중요하지 않습니다. 컬러 섹션의 시작 부분에서 "역방향"을 설정 한 다음 "재설정"으로 모든 속성을 지 웁니다.

그러나 일부 속성을 켠 다음 선택적으로 다른 속성을 비활성화 할 수 있습니다. 예를 들면 :

git log --format="%C(bold ul yellow)%h%C(noul) %s"

해시에만 밑줄을 긋지 만 나머지 속성을 다시 지정할 필요는 없습니다.

이는 contrib/diff-highlight기존 색상을 방해하지 않고 일부 속성을 켜거나 끄려는와 같은 타사 프로그램에도 도움이 될 수 있습니다 .

일부 속성 사양은 의미가 없을 수 있습니다 (예 : " bold nobold"). 우리는 그러한 구조에 플래그를 지정하지 않고 대신 터미널이 그것을 분류하도록합니다.


Git 2.26 (Q1 2020)에서는 기본 7 가지 색상이 더 밝은 색상 (예 : " brightred")을 학습했습니다 .

참조 c444f03 커밋 , 1751b09 커밋 , 4a28eb0 커밋 에 의해 (2020년 1월 21) Eyal 님 소하 (``) .
(Merged by Junio ​​C gitsterHamano -- in commit 87f17d7 , 25 Feb 2020)

color.c: 밝은 aixterm 색상 지원

서명자 : Eyal Soha

이 색상은 3 비트 색상의 밝은 변형입니다.

전경은 30-37 범위, 배경은 40-47 범위 대신 각각 90-97 및 100-107 범위에 있습니다.

이제 git config문서 에는 다음이 포함됩니다.

가능 기본 색상은 normal, black, red, green, yellow, blue, magenta, cyanwhite.
주어진 첫 번째 색상은 전경입니다. 두 번째는 배경입니다.

모든 기본 색상을 제외한 모든 기본 색상 normal에는 색상 앞에와 bright같이를 붙여 지정할 수있는 밝은 변형이 있습니다 brightred.


stackoverflow.com/a/12798205/6309 참조 : git 2.9.1은 두 가지 새로운 속성 인 기울임 꼴 및 스트라이크를 지원합니다 .
VonC

2
git 별칭 안에 RGB 색상을 포함하는 방법을 알고 있습니까? #ff69b4별칭에 명령 줄에서 작동하지만 때문이 아니라 #시작 주석
팀 말론

@TimMalone 아직 테스트하지 않았지만 구성 매뉴얼 페이지에 "이름 뒤의 선행 공백 =, 첫 번째 주석 문자 #또는 뒤의 나머지 줄 ;및 줄의 후행 공백은 큰 따옴표로 묶지 않는 한 삭제됩니다 . "
VonC

1
@TimMalone 전체 별칭을- "따옴표로 묶으면 #특수하지 않습니다.
Tom Hale

@VonC, git log명령 출력을 텍스트 또는 클립으로 파이프하면 이상한 문자가 나타납니다 . 색상과 속성이와 함께 사용될 때 이런 일이 발생하는 것 같습니다 --format. 이유 또는 수정 사항이 있습니까?
hIpPy

7

내 자식 로그 형식 공유 :

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

~ / .gitconfig에 별칭을 추가 할 수도 있습니다 .

[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

그런 다음에서 정의한대로 별칭을 사용할 수 있습니다 ~/.gitconfig.

$ git logs

7
질문은 git의 예쁜 형식 색상을 찾는 방법을 묻는 것입니다.
Rapnar

4

Ubuntu 18.04를 사용하고 있으며 Xiaofei HAN의 제안을 사용할 수있었습니다.

이것을 완료하려는 초보자에게는 .gitconfig를 편집하여 최고의 행운을 얻었습니다.

nano ~/.gitconfig

기존 텍스트 아래 위에서 [별칭] 블록을 붙여 넣습니다.

CTRL + O (쓰기) + CTRL + X (나노 닫기)

이렇게하면 예쁜 색이 보이려면

git logs

사용

'git log'는 색상없이보기를 제공합니다.

'git logs --oneline'과 동일하지만 측면에 번 성함이 표시된다는 점이 다릅니다.

감사합니다. 누군가에게 도움이되기를 바랍니다.


4

@VonC의 답변에 표시된대로 사용자 지정 16 진수 색상 값을 사용하는 구문을 이해 한 후 작성한 두 가지 별칭이 있습니다.

네 가지 버전이 있습니다. 유일한 차이점은 --graph 지시문이며 'f'버전은 추가, 삭제 또는 수정 된 파일도 표시합니다.

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

이 사이트를 사용하여 내가 원하는 정확한 색상을 선택한 다음 여기에서 16 진수 값을 복사했습니다.

https://www.colorhexa.com/

Windows의 경우 "C : \ Users \ YourUserName"폴더에있는 .gitconfig 파일을 열고 위에서 설명한대로 별칭 섹션을 추가합니다.

당신이 그들을 좋아하길 바랍니다.

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