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
|
|
text file을 넣기전 CRLF
를 LF
로 변경합니다.
Mac
|
|
Mac
, Linux(Unix 계열)
의 경우 LF
만 사용하기 때문에 input으로 설정하면 됩니다.
위와 같은 설정은 결국 아래와 같은 그림과 같은 형태로 text 파일이 저장됩니다.