Windows는 line ending으로 CR(Carriage-Return, \r)과 LF(Line Feed \n)을 사용합니다. CRLF는 커서를 다음 라인의 맨앞으로 옮기는 표시이며, 이러한 표현입니다.

Mac, Linux(Unix 계열)의 경우 LF(Line Feed \n)를 사용합니다. LF는 현재 위치에서 바로 아래로 이동하는 것을 의미하며, 와 같은 표현입니다.

문제는 같은 작업 영역에서 같은 코드를 수정할 경우 windows와 mac의 코드가 일치하더라도 커서의 표현값이 다르기 때문에 충돌이 일어나는 경우가 발생합니다.

해결 방법으로는 각 운영체제별로 git을 기준으로 LF로 맞춰주는 것입니다.
Windows는 CRLF를 LF로 변경되도록 git config 설정 중 core.autocrlf를 설정해주면 됩니다. Mac은 기존 개행 형식으로 저장되도록 설정해줍니다.

core.autocrlf 는 text file 을 git object database 에 checkin, checkout 할 때 어떻게 처리할지를 설정하는 변수입니다.

Windows

1
git config --global core.autocrlf true

text file을 넣기전 CRLFLF로 변경합니다.

Mac

1
git config --global core.autocrlf input

Mac, Linux(Unix 계열)의 경우 LF만 사용하기 때문에 input으로 설정하면 됩니다.

위와 같은 설정은 결국 아래와 같은 그림과 같은 형태로 text 파일이 저장됩니다.

image