2010-12-29 4 views
7

git commit 나에게 다음과 같은 메시지자식 당신은 몇 가지 의심스러운 패치 라인

* 
* You have some suspicious patch lines: 
* 
* In projects/bong/traid/apps/controller/project.php 
* trailing whitespace (line 220) 
projects/bong/traid/apps/controller/project.php:220:   
* trailing whitespace (line 223) 

무슨 뜻을주는이 커밋?

답변

14

. , STRG + H : ref

+2

이 메시지는 somtimes 당신은 ++ 짧은 버전을 메모장을 사용하여 UNIX 스타일의 줄 끝에있는 사람을 대체 할 수있는 CRLF 라인 엔딩 (윈도우)의 원인이 될 수 있습니다 확장 검색, 찾기 : \ r \ n 바꾸기 \ n 추가 정보 : http://stackoverflow.com/questions/133965/find-crlf-in-notepad –

+1

@ s.Daniel 명령 행 도구'dos2unix'는 또 다른 간단한 접근 방식입니다 고려해 볼 가치가있는 개행 대체에 –

1

간단히 말해서, 언급 한 행에 공백 문자가 있음을 의미합니다. 후행하는 백색은 조금 이상한 선택이고 때때로 컴파일러 오류 또는 다른 오류가 발생하기를 기다리고 있습니다.

당신은 그 줄들을 지울 수 있습니다. 그렇지 않으면 git commit에 --no-verify 플래그를 추가하여 이번에 커밋을 강제 할 수 있습니다.

또는, 당신은 단지 비활성화하여이 검사를 해제 할 수 있습니다 다음과 같이 후크 사전 커밋 : CD를 .git/후크/ chmod를 -x BTW

을 사전에 저지,이 대답은에서 추출됩니다 http://danklassen.com/wordpress/2008/12/git-you-have-some-suspicious-patch-lines/

+0

흠 .. 그러나이 선 그냥 들여 쓰기입니다 .. –

7

나는 단지 사전 커밋을 비활성화시키는 것을 혼란스럽게 생각합니다. .git/hooks/pre-commit의 내용을 살펴보면 해결되지 않은 병합 충돌을 검사하기 때문에 계속 확인하고 싶습니다!

파일 끝으로 라인 끝과 깔끔한 ​​탭 문자에서 공백을 검사하는 정규식을 실행합니다. 나는이 라인들을 주석 처리 했으므로 이들 라인을 찾지 않았고, 사전 커밋 경고 문제를 제거했다.

git commit --no-verify 

가 확인 커밋합니다 : 파일이 공백을 후행 때 실행할 경우, 발생


55  if (s/^\+//) { 
56   $lineno++; 
57   chomp; 
**58   # if (/\s$/) { 
59   # bad_line("trailing whitespace", $_); 
60   # } 
61   # if (/^\s* \t/) { 
62   # bad_line("indent SP followed by a TAB", $_); 
63   # }** 
64   if (/^([])\1{6} |^={7}$/) { 
65   bad_line("unresolved merge conflict", $_); 
66   } 
67  }