2011-09-08 2 views
0

파일 끝에있는 줄 바꿈의 차이를 git로 가져 오는 (병합하는) 동안 종종 충돌이 발생합니다.git : 파일 끝에서 줄 바꿈을 통해 병합을 병합합니다.

충돌 아웃이처럼 보이는 온다 :

diff --cc httpdocs/about/faq.php 
index 0ae3963,b5eb519..0000000 
--- a/httpdocs/about/faq.php 
+++ b/httpdocs/about/faq.php 
@@@ -212,4 -211,4 +212,8 @@@ $_SESSION['activePage'] = 'about' 
     </div><!-- end wrap --> 

-<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?> 
++<<<<<<< HEAD 
+<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?> 
++======= 
++<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?> 
++>>>>>>> 564e069cccfad98f818ec878a3b2526fd9430f8a 

더 나쁜; 필자가 수동으로 파일을 분석하고 충돌 한 파일을 추가 한 후에는 파일의 끝과 관련하여 커밋 할 항목이없는 것처럼 보입니다. 다시 끌어 당기면 똑같은 충돌이 발생합니다. 어떤 해결책?

+0

파일을 확인하고 추가 한 후에는 커밋 할 수 있어야합니다. 정확히 달린 명령은 무엇입니까? –

답변

1

이러한 차이점은 서로 다른 OS가 어떤 라인을 끝내는 지에 대해 다른 생각을 갖고 있다는 사실에서 비롯됩니다.

Git은 일반적으로 core.eol의 구성 값을 기본값으로 'native'로 설정하여 잘 처리합니다. 그러나 개발자가 어떤 이유로 든 설정을 갖지 않거나 Windows에서 UNIX 스타일 파일을 커밋하거나 그 반대의 경우에는 이러한 문제가 발생할 수 있습니다.

문제의 원인을 찾아서 처리하는 것이 가장 좋습니다. 그렇지 않으면 core.eol (lf/crlf)에 대해 다른 값을 설정하고 문제를 해결할 수 있습니다. 전체 프로젝트가 아닌 특정 경로에서만 발생하는 경우 해당 경로에 대한 gitattributes 파일을 정의하는 것이 좋습니다.

+0

감사합니다 - core.eol을 시도 할 것이지만 저장소는 리눅스 기계간에 밀고 당겼습니다 – EoghanM

+0

아마도 누군가가 Windows 컴퓨터에서 복사 한 파일을 커밋했습니다. – yhager

+0

예, 아마도 코드베이스의 원래 개발자 (git에 넣기 전에)는 Windows에서 개발했습니다. – EoghanM