Git diff -w는 줄의 시작과 끝에서만 공백을 무시합니다.


366

git diff -w공백 차이를 무시하는 데 사용 하고 싶습니다 . 그러나 방금 줄 중간의 공백조차 무시한다는 것을 알았습니다. 줄의 시작 (^) 또는 끝 ($)에서 발생하는 공백 차이 만 어떻게 무시할 수 있습니까?


31
git diff -b대신 사용 을 고려 하시겠습니까?
Jonas Byström

5
"-b --ignore-space-change 공백 양의 변화를 무시합니다. 이것은 줄 끝의 공백을 무시하고 하나 이상의 공백 문자의 다른 모든 시퀀스를 동등한 것으로 간주합니다."
mowwwalker

답변:


450

라인 사용의 경우 :

git diff --ignore-space-at-eol

현재 무엇을 사용하고 있습니까?

git diff -w (--ignore-all-space)

라인 시작을 위해 ... 내장 솔루션을 원한다면 운이 없습니다.

그러나 손이 더러워지는 것이 마음에 들지 않으면 "--ignore-space-at-sol"에 대한 지원을 추가하는 어딘가에 오래된 패치가 떠 있습니다.


고맙지 만 diff를 외부 도구로 구성하면 작동하지 않습니다. 어떤 아이디어?
adardesign 2016 년

@ adardesign, 아마도 외부 도구에서 구성해야한다고 생각합니다. 공백 변경없이 diff를 표시하기 위해 git이 할 수있는 일이 있는지 확실하지 않습니다 ...하지만 잘못 될 수 있습니다. 자식은 꽤 강력합니다 ...
johnny

기본적으로 구성하는 것이 좋습니다. 나는 -w 또는 -b 또는 --ignore-all-space를 의미합니다. stackoverflow.com/questions/7310033/…에
Artyom

8
-w는 "abc def"와 "abcdef"를 동일하게 취급하기 때문에 -b 제안에 동의합니다.
Richard Wiseman 10

3

이것은 오래된 질문이지만 여전히 정기적으로 보거나 필요합니다. OP의 질문에 언급 된 공백그렇지 않다는 나와 같은 독자에게주의를 기울이고 싶습니다. 줄 바꿈, 탭, 공백 문자를 포함, 정규식의 정의와 같은 - 망할 놈의 당신이 명시 적으로 요청합니다. 여기에 몇 가지 옵션이 있습니다 : https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

으로 진술, git diff -b또는 git diff --ignore-space-change라인 끝에서 공백을 무시합니다. 해당 설정을 기본 동작으로 설정하려는 경우 다음 행은 해당 의도를 .gitconfig 파일에 추가하므로 행 끝의 공백을 항상 무시합니다.

git config --global core.whitespace trailing-space

제 경우에는 "캐리지 리턴 공백 ​​차이"를 무시하는 데 관심이 있었기 때문에이 질문을 찾았습니다.

git diff --ignore-cr-at-eol또는 git config --global core.whitespace cr-at-eol에서 여기 .

--global 매개 변수를 생략하고 해당 리포지토리의 설정 파일을 체크인하여 해당 리포지토리 의 기본값 설정할 수도 있습니다 . 내가 직면 한 CR 문제의 경우, .gitconfig 파일의 [core] 섹션에서 warncrlf 또는 autocrlf = true 인 경우 체크인 후 사라집니다.

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