IT박스

git-diff 출력의 공백 색칠

itboxs 2020. 6. 20. 10:40
반응형

git-diff 출력의 공백 색칠


코드 형식과 관련하여 나는 순수 주의자입니다 :). 나는 종종 불필요한 공백을 제거합니다 (줄 끝에 ws, ws 만있는 줄 등). 나는 심지어 vim을 그 종류의 선이 빨간색으로 표시되도록 설정했습니다.

내 문제는 git-diff를 사용하면 종종 다음과 같은 것을 볼 수 있다는 것입니다.

-      else{ 
+      else{

git-diff 색상을 사용하더라도 차이를 볼 수 없습니다 (특정 상황에서 줄 끝에서 1 ws를 제거했습니다). git-diff에게 ws가 빨간색으로 표시되도록 지시하는 방법이 있습니까? (예 : / \ s + $ / regexp와 일치하는 항목).


다음과 같이 color.diff.whitespace 구성 설정을 설정해야 할 수도 있습니다.

 git config color.diff.whitespace "red reverse"

( 어쨌든 컬러 패치가 표시된다고 말한 이래로 이미 설정 color.diff했거나 color.ui설정 했다고 가정 합니다.)autogit diff

빨간색으로 강조 표시된 공백 오류 유형을 미세 조정하려면 change를 변경할 수 core.whitespace있지만 blank-at-eol기본적으로 활성화되어 있으므로 언급 한 예제에서이를 변경할 필요가 없습니다.

혼동의 원인은의 출력 git diff에서 공백 오류는 제거 된 것이 아니라 도입 된 행에서만 강조 표시된다는 것입니다. ( 업데이트 : Paul Whittaker 가 자신의 답변에서 지적한대로 투표해야합니다 git diff -R.)로 diff의 의미를 반대로 바꾸면 이러한 내용을 볼 수 있습니다 .

git config 매뉴얼 페이지 에서 이러한 구성 옵션에 대한 추가 설명서를 찾을 수 있습니다

-Rkludge 를 사용하지 않으려면 diff man page 에서 WhiteSpace Error Highlight 옵션을 사용할 수 있습니다 .

--ws-error-highlight =

color.diff.whitespace로 지정된 색상으로 지정된 행에서 공백 오류를 강조 표시하십시오. 쉼표로 구분 된 오래된 새 컨텍스트 목록입니다. 이 옵션을 지정하지 않으면 새 줄의 공백 오류 만 강조 표시됩니다. 예를 들어 --ws-error-highlight = new, old는 삭제 된 행과 추가 된 행에서 공백 오류를 강조 표시합니다. 모두 오래되고 새로운 맥락의 속기로서 사용될 수 있습니다.

git diff --ws-error-highlight=new,old <file>

또는

git diff --ws-error-highlight=all <file>

이 기능을 영구적으로 켜고 별칭을 사용하지 않고 구성에 저장하는 방법을 모르겠습니다.

git config alias.df 'diff --ws-error-highlight=all'

이제 다음을 사용할 수 있습니다.

git df <file>

빨간색으로 변경 사항을 보려면

참고 힘내 2.11 (Q4 2016) ,이 별명으로 대체 될 수 있습니다 :

git config diff.wsErrorHighlight all

doc ongit diff and on을git config 참조하십시오 .


git diff -R제거 된 줄을 추가 된 줄로 바꾸는 데 사용 합니다. 그런 다음 후행 공백이 강조 표시됩니다.

(이것은 Mark의 답변의 색상 설정에 따라 이미 공백 하이트 라이팅이 활성화되어 있다고 가정합니다.이 방법에 대한 크레딧은 Junio의 게시물 http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal- with-git-diff-td5653205.html )

예를 들어, 파일을 DOS 줄 끝에서 Unix로 변환 할 때 줄 끝에 나타나는 문자 (dis)가 git diff -R명확하게 표시 ^M됩니다. 없는 경우 -R(또는없는 -w경우) 전체 파일이 변경되었음을 보여 주지만 방법은 표시하지 않습니다.


사용하십시오 git diff --color | less -R. 이는 -R색상 제어 코드를 인간 친화적으로 만듭니다.

그런 다음 less의 정규 표현식 검색을 사용할 수 있습니다.

/[[:space:]]+$

내 버전은 git diff이미이 작업을 수행하는 것 같습니다-git 1.7.4.1이 있고 설정했습니다 color.ui = auto.

참고 URL : https://stackoverflow.com/questions/5257553/coloring-white-space-in-git-diffs-output

반응형