git-diff의 출력에서 공백 색상 지정
코드 포맷과 관련하여 저는 일종의 순수주의자입니다 :).불필요한 공백(ws만 있는 줄, 줄 끝에 ws 등)을 제거하는 경우가 많습니다.저는 심지어 그런 선들을 빨간색으로 칠하도록 vim을 설정했습니다.
제 문제는 git-diff를 사용하면 종종 다음과 같은 것을 볼 수 있다는 것입니다.
- else{
+ else{
Git-diff 색상을 가지고 있어도 차이를 볼 수 없습니다(그 특정 상황에서 저는 줄 끝에서 1w를 제거했습니다).git-diff에 ws가 빨간색으로 색칠되었음을 보여주는 방법이 있습니까? (예: /\s+$/ regexp와 일치하는 것)
Git 2.11(2016년 4분기) 이후에는 다음을 수행할 수 있습니다.
git config diff.wsErrorHighlight all
의 및 을 참조하십시오.
이전 버전의 경우 다음을 설정할 수 있습니다.color.diff.whitespace
구성 설정(예:
git config color.diff.whitespace "red reverse"
(당신이 이미 가지고 있다고 생각합니다.color.diff
또는color.ui
로 설정한.auto
당신이 컬러 패치를 본다고 말했기 때문에.git diff
어쨌든.)
빨간색으로 강조 표시된 공백 오류 유형을 미세 조정하려면 다음을 변경할 수 있습니다.core.whitespace
,그렇지만blank-at-eol
기본적으로 활성화되어 있으므로 언급한 예에 대해 변경할 필요가 없습니다.
혼동의 가능한 원인은 다음과 같은 출력에 있습니다.git diff
공백 오류는 제거된 것이 아니라 도입된 행에서만 강조됩니다. (업데이트: 폴 휘태커가 답변에서 지적했듯이, 업-투표해야 합니다.) 다음을 사용하여 차이의 의미를 뒤집어서 볼 수 있습니다.git diff -R
.)
이러한 구성 옵션에 대한 자세한 설명서는 git 구성 관리 페이지에서 확인할 수 있습니다.
사용하지 않으려면-R
klulg 당신은 diffman 페이지에서 WhiteSpace Error Highlight 옵션을 사용할 수 있습니다.
--ws-error-details=
color.diff로 지정된 색상으로 에 의해 지정된 선에서 공백 오류를 강조 표시합니다.여백이전, 새, 컨텍스트의 쉼표로 구분된 목록입니다.이 옵션을 지정하지 않으면 새 줄의 공백 오류만 강조 표시됩니다.예: --ws-error-filename=new,old는 삭제된 줄과 추가된 줄 모두에서 공백 오류를 강조 표시합니다.모두 오래된 것, 새 것, 새 것, 새 것의 짧은 손으로 사용할 수 있습니다.
git diff --ws-error-highlight=new,old <file>
또는
git diff --ws-error-highlight=all <file>
2.11 이전 버전에서는 별칭을 사용하는 것 외에는 이 기능을 영구적으로 설정하고 구성에 저장할 수 없습니다.
git config alias.df 'diff --ws-error-highlight=all'
이제 다음을 사용할 수 있습니다.
git df <file>
빨간색으로 변경된 내용을 확인합니다.
사용하다git diff -R
제거된 선을 추가된 선으로 변환합니다.그런 다음 후행 공백이 강조 표시됩니다.
(이는 Mark의 답변에 따른 색상 설정에 따라 공백 강조 표시가 이미 활성화되어 있다고 가정합니다.이 방법에 대한 공로는 주니오(http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal-with-git-diff-td5653205.html )의 게시물에 있습니다.
를 들어,할 때, 도스 줄말단, 도스 줄말단,git diff -R
나에게 명확하게 보여줍니다.^M
줄의 끝에 있는 문자(dis)입니다. 없이.-R
없음)-w
등)는 전체 파일이 변경되었음을 표시하지만 방법은 표시하지 않습니다.
게으른 답변 스키머의 경우, 그냥 실행:
git config --global diff.wsErrorHighlight all
그리고나서git diff
제거된 선의 후행 공백도 강조 표시됩니다.
사용하다git diff --color | less -R
.-R
색 조절 코드를 인간 친화적으로 만듭니다.
그러면 사용할 수 있습니다.less
검색규정표현검예색의예)
/[[:space:]]+$
의 버전git diff
이미 이것을 하는 것처럼 보입니다 - 저는 1.7.4.1을 가지고 있고 설정했습니다.color.ui = auto
.
위에서 언급한 명령은 gitconfig 파일에 옵션으로 포함될 수도 있습니다. 즉,
git config ....
예를 들어 ~/.gitconfig에 해당 옵션 추가
[diff]
wsErrorHighlight = all
[color]
ui = auto
위의 두 가지 옵션이 효과가 있을 것입니다.제가 테스트한 가장 초기의 Git 버전은 1.7이었지만 그 이후의 모든 버전에서도 작동할 것입니다.최근 버전의 git에서는 "[color]" 옵션이 기본적으로 "auto"로 설정되어 있습니다.
언급URL : https://stackoverflow.com/questions/5257553/coloring-white-space-in-git-diffs-output
'programing' 카테고리의 다른 글
mongodb 문서의 ID 유형으로 String을 사용할 수 있습니까? (0) | 2023.07.02 |
---|---|
전자: jQuery가 정의되지 않았습니다. (0) | 2023.07.02 |
MongoDB - 텍스트 필드의 인덱스와 텍스트 인덱스의 차이? (0) | 2023.07.02 |
두 표의 데이터를 하나의 보기로 변환 (0) | 2023.07.02 |
스프링 부트에서 application.properties에서 application.yml로 변환하는 방법은 무엇입니까? (0) | 2023.07.02 |