2016-06-13 3 views
0

메모장을 구성하는 데 질문이 있습니다. ++ : Windows에서 메모장 ++을 사용하여 코드를 편집합니다. 그리고 리눅스에서 git diff를 실행하면 tous les lines이 수정 된 것으로 표시됩니다. 사실, 파일을 열었지만 메모장에서 수정하지 않았 음을 확신합니다! 메모장의 구성 문제라고 생각합니다. 메모장에서 파일을 열면 모든 줄 바꿈이 변경됩니다. 그래서 git diff는 내가 모든 라인을 "수정"했다는 것을 보여줄 것입니다. 해결 방법을 알려주시겠습니까?git diff를 사용하기 위해 메모장을 구성하는 방법

+1

그래서 당신은 줄 끝 얘기를? – Droppy

+0

보통 모든 라인이 바뀌면 라인 터미네이션과 관련이 있습니다 : 윈도우의'\ r \ n' 대 nix의'\ n'. 힘내는 체크 인과 체크 아웃 사이의 줄 끝을 수정하는 몇 가지 설정이 있습니다. Notepad ++는 한 줄 끝 유형을 모두 다른 줄 끝 유형으로 바꿀 수도 있습니다. – MicroVirus

+0

Windows와 Linux 사이에서 힘내 사용하여 파일을 공유합니까? 아니면 둘 다 동일한 파일 시스템에 액세스합니까? 'git config core.autocrlf' 설정은 무엇입니까? – Melebius

답변

0

편집중인 코드가 Git for Unix LOD (lines end endings)로 확약 된 것처럼 보입니다. 메모장 + +는 일반적으로 Windows에서 사용되는 CRLF로 줄 끝 문자를 변환합니다.

다음 두 가지 방법 중 하나로이 문제를 해결할 수 있습니다.

Windows에서 메모장 ++로 코드를 편집하려는 경우 Edit > EOL conversion > UNIX/OSX Format을 사용하면 편집 한 파일의 모든 줄 끝을 Unix 형식으로 변환 할 수 있습니다.

그렇지 않으면 Git이 유닉스 라인 결말을 CRLF로 체크 아웃하고 core.autocrlf 설정 옵션을 통해 LF로 커밋 할 수 있습니다. 아래 documentation에서 발췌 참조 : Windows에서 프로그래밍이 아닌 (또는 그 반대) 사람들과 작업하는 경우

을, 당신은 아마 어떤 시점에서 라인 종료 문제로 실행됩니다. 이는 Windows에서 캐리지 리턴 문자 과 파일의 줄 바꿈 문자를 모두 사용하는 반면 Mac 및 Linux 시스템에서는 줄 바꿈 문자 만 사용하기 때문입니다. 이것은 미묘하지만 교차 플랫폼 작업의 매우 짜증나는 사실입니다 ( ). 에있는 많은 편집자 Windows는 기존 LF 스타일의 줄 끝을 자동으로 CRLF로 바꾸거나 사용자가 Enter 키를 누를 때 두 줄의 끝 문자를 삽입합니다. 인덱스에 파일을 추가 할 때, 그 반대는 당신의 파일 시스템에 코드 을 체크 아웃 할 때

힘내 LF로 자동 변환 CRLF 라인 엔딩으로이 문제를 처리 할 수 ​​있습니다. core.autocrlf 설정을 사용하여이 기능을 사용하도록 설정할 수 있습니다. 당신은 Windows 시스템의 경우, 사실 로 설정 - 이것은 당신이 코드를 체크 아웃 할 때 CRLF로 LF 엔딩 변환 :

$ git config --global core.autocrlf true

관련 문제