코드 형식과 관련하여 나는 순수 주의자입니다 :). 나는 종종 불필요한 공백을 제거합니다 (줄 끝에 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
설정 했다고 가정 합니다.)auto
git diff
빨간색으로 강조 표시된 공백 오류 유형을 미세 조정하려면 change를 변경할 수 core.whitespace
있지만 blank-at-eol
기본적으로 활성화되어 있으므로 언급 한 예제에서이를 변경할 필요가 없습니다.
혼동의 원인은의 출력 git diff
에서 공백 오류는 제거 된 것이 아니라 도입 된 행에서만 강조 표시된다는 것입니다. ( 업데이트 : Paul Whittaker 가 자신의 답변에서 지적한대로 투표해야합니다 git diff -R
.)로 diff의 의미를 반대로 바꾸면 이러한 내용을 볼 수 있습니다 .
git config 매뉴얼 페이지 에서 이러한 구성 옵션에 대한 추가 설명서를 찾을 수 있습니다
-R
kludge 를 사용하지 않으려면 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
.