2011-03-23 4 views
0

git 저장소 아래에있는 파일에서. 일부 코드 만 추가했습니다. git diff를 수행하면 이전 버전의 파일 전체를 "-"로 표시 한 다음 "+"로 파일의 전체 버전을 표시합니다.Git Diff는 변경되지 않은 파일을 제거 된 것으로 표시합니다 ("-"포함)

예 : 자식은 diff와

print "hello"
print "stack overflow" #new added code
print "world"

-print "hello"
-print "world"
+print "hello"
+print "stack overflow" #new added code
+print "world"

대신

print "hello"
+print "stack overflow" #new added code
print "world"

를 예상대로 표시됩니다.

이로 인해 reitveld 코드 검토 도구에서도 문제가 발생합니다. 잘못되었거나 git config가 누락되었습니다.

업데이트 : 이클립스는 파일을 자동으로 형식화하고 공백은 토스 (toss)로 갔으므로 diff는 위와 같습니다. 여전히 그것을 피할 수있는 방법이 있어야합니다. 그게 뭔가 있니?

답변

3

보이지 않는 공백이나 다른 줄 끝 (CRCR/LFLF, 파일을 만들거나 수정하는 데 사용 된 편집기에 따라 다름)을 확인하십시오. 사용

+3

"-b"또는 "-w"플래그로 diffing을 시도하여 공백 변경을 무시하거나 공백을 완전히 무시하십시오. – araqnid

+0

시도해 본 CRLF와 LF는 git config core.eol = crlf를 사용합니다. 둘 다 도움이 안돼. -b 옵션도 도움이되지 않습니다. – sheki

1

시도 :

git diff --ignore-space-at-eol 

이 라인 엔딩을 무시. 이것이 문제라면 불행히도 커밋은 위 플래그를 사용하지 않을 때 볼 수 있습니다.

2

파일이 유닉스 모드 (\ n)로 저장되었지만 창 모드 (\ r \ n)로 저장되어 파일의 모든 행이 변경된 것으로 표시 될 수 있습니다. 파일이 저장된 모드로 저장하십시오.

관련 문제