git (또는 다른 명령)에 대한 색상 출력 방법이 있습니까?

고려 사항 :

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models  

그리고

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb #  

출력은 동일하게 보이지만 정보는 완전히 다릅니다. 파일이 커밋을 위해 준비되지 않은 상태로 이동했습니다.

방법이 있습니까? 출력을 채색하려면? 예를 들어, 준비되지 않은 파일은 빨간색이고 준비된 파일은 녹색입니까?

아니면 Changes not staged for commit:가 빨간색으로, # Changes to be committed:가 녹색으로 바뀌나요?

Ubuntu에서 작업 중입니다.

편집 : 인터넷 검색에서 git config --global --add color.ui true이 (가) 잘 작동하는 답변을 찾았습니다.

하지만 색상을 추가하는 일반적인 솔루션이 있습니까? 명령 출력?

주석

  • 모든 명령 출력을 색상 화하는 것을 원하십니까? 색상을 지정할 부분을 어떻게 알 수 있습니까?
  • 정규식을 사용하여 구성하는 방법이 있는지 추측합니다. 각 색상은 시작 정규식을 가질 수 있습니다. 그리고 모든 색상을 끄는 기본 색상 정규식이있을 수 있습니다. 그리고 ” foo ” 텍스트가 나타나면 특정 색상으로 표시 …

답변

~/.gitconfig에서 섹션 [color]을 만들 수 있습니다. 예를 들어 div> 다음 콘텐츠

[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true 

또한 어떤 방식으로 색상을 지정할지 미세 제어 할 수 있습니다. 예 :

[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow 

이것이 시작되기를 바랍니다. 물론 색상을 지원하는 터미널이 필요합니다.

댓글

  • 나는 git config –global color.ui를 넣을 가치가 있다고 생각합니다. 자동 (@Evgeny ‘의 답변)이 가장 중요합니다. ‘가 대부분의 사람들이 될 가능성이 높습니다. 찾고있는. 저는 ‘ 둘 다 찬성했습니다 … 저는 ‘ 여기에 온 인터넷을 위해 많은 사람들이 그 간단한 라이너를 원합니다. 그들이 얻을 수 있다면 더 좋을 것입니다. 그리고 당신의 장점도 있습니다.
  • 이것은 저에게 완벽하게 작동했습니다. [color "status"] 섹션에서 .
  • [color] 섹션을 프로젝트 ‘의 .git / config 파일에도 추가 할 수 있습니다.
  • 그리고 git 명령의 단일 호출에 대한 구성 변수를 설정할 수 있습니다. stackoverflow.com/a/18304605/134044

답변

사용하고 싶을 것입니다.

git config --global color.ui auto 

auto 부분에 따르면 git은이를 지원하는 터미널에서만 색상을 시도하고 사용하며 예를 들어 git 명령의 출력을 파일로 리디렉션하면 ANSI 시퀀스를 얻지 못합니다. true로 설정하는 것은 auto와 동일하며 Git 1.8.4 이후의 기본값이기도합니다.

color.ui는 git 명령으로 사용할 수있는 다양한 color.* 구성을 모두 포함하는 메타 구성입니다.

이 내용에 대해 설명합니다. git help config에 대해 자세히 설명합니다.

댓글

  • color.ui의 차이점을 설명해 주시겠습니까? true (auto가 가리키는)와 always? 문서 를 읽었지만 여전히 차이가 없습니다.
  • @chharvey color.ui = auto + git diff | less-색상 없음, color.ui = always + git diff | less-색상 출력. LESS=-R는 암시 적입니다.

답변

git config --global color.ui auto git config --global color.branch auto git config --global color.status auto 

댓글

  • 참고로, 이것은 git 버전 1.5.2.1에서만 작동하고 다른 답변은 작동하지 않았습니다. ‘ t.

답변

허용되는 답변이 가장 일반적인 해결책을 제공합니다. 어떤 이유로 든 해당 솔루션이 수행하는 구성을 영구적으로 변경할 필요가없는 경우 단일 git 명령에 대한 구성을 재정의 할 수 있습니다.

git -c color.ui=always <usual git command and options> 

예 : :

git -c color.ui=always status git -c color.ui=always diff 

테스트 됨 : git 2.4.6에서 지원되고 git 1.7.1에서는 지원되지 않습니다 .

댓글

  • 저와 같이 less에 파이핑 할 때 색상을 얻으려는 다른 사람은 less less -R를 통해 색상 이스케이프 문자를 터미널로 전달합니다.
  • 이 기능이 언제 추가 되었나요?

답변

git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always 

답변

또는 다음을 통해 모든 / 대부분의 색상 화 끄기 :

git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false 

댓글

  • OP는 ‘ 색상을 켜기 하는 대신 색상을 끄지 하지 않았습니다. . OP에서 그는 git에 대해 수행하는 방법을 언급했으며보다 글로벌 한 의미에서 수행 할 수있는 방법을 원합니다. 이러한 방법을 알고 있다면 답변을 수정하여 설명해주세요.
  • 때때로 사람들은 밀접한 관련이 있지만 약간 다른 것을 찾고 있지만 반대표에 감사드립니다.
  • 좋아요 it @theRiley

Answer

색상 git diff 파이프 less로 들어가면 작동합니다.

git -c color.diff=always diff [...] | less -R 

Answer

임의 명령 출력 색상 을 사용하여이 작업을 수행 할 수 있습니다. 대부분 작동하지만 입력을 예상하는 프롬프트가 표시되지 않는 버그를 해결하는 방법을 알아 내지 못했고 필요한 입력을 단순히 입력하고 Enter 키를 눌러 모든 경우에 계속할 수 없습니다.

git에 대한 ~/.acoc.conf의 예 :

# git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red 

. . 이것은 .bash_profilealias git="acoc git"와 잘 어울립니다.

댓글

  • acoc에 대한 구성을 공유 할 수 있습니까?
  • Nvm, 작성하기 쉬웠습니다. 🙂 답변에 추가되었습니다.

답변

게시물이 4 년이라는 것을 알고 있지만 제 캠프에서 응답 한 사람이없는 색맹입니다. 색상을 구분하고 내 게시물을 무시합니다.

예를 들어 “git status”는 배경에 흰색 / 흰색 배경에 검은 색 (읽기), 삭제 된 경우 진한 회색 (검은 색 배경에는 읽을 수 없지만 읽을 수있는 텍스트) 흰색 배경) 및 중간 회색 dded (검은 색 바탕에 보리는 읽을 수 있고 흰색 바탕에는 읽을 수 없음). 읽기 어려운 텍스트를 읽을 수 있도록 터미널 창의 배경을 흰색 / 검정색으로 /에서 전환했습니다. 간단한 해결책이 더 있습니다.

 git status | more 

이렇게하면 표준 흰색 또는 검정색 배경 터미널 창에서 모든 텍스트를 읽을 수 있습니다.

댓글

  • 기본적으로 모든 항목을 색상 없음으로 설정하도록 구성을 변경할 수도 있습니다 (color.ui = never).

답변

git diff의 출력을 색상 화하려면 color.diff 섹션을 추가 할 수 있습니다. ~ / .gitconfig. 예 :

[color "diff"] new = bold italic 154 old = bold italic 196 

여기 154196는 ANSI입니다. 256 색 코드. 자세한 내용은 man git config를 참조하세요.

답변

https://github.com/dandavison/delta : (git) diff 출력의 색상이 지정된 언어 구문 강조 및 diff에서 추가 / 제거 된 행의 색상 강조 .

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다