MAC/Linux 시스템 에서는 줄의 끝이 LF(Line Feed) 로 이루어 진다.
반면 Windows 에서는 CR(Carriage Return)과 LF(Line Feed) 를 이용한 CRLF 로 나타낸다.
따라서 MAC/Linux 개발자와 Windows 개발자가 협업했을 때 이와 관련한 오류가 발생할 수 있다.
git 을 사용하다 보면 다음과 같은 경고를 본 적이 있을 것이다.
warning: CRLF will be replaced by LF in ~
The file will have its original line endings in your working directory.
CRLF / LF 중 어느 것을 사용해야 할 지 git이 결정하지 못했기 때문이다.
Git 에서는 core.autocrlf 설정을 통해 파일을 추가 할 때 CRLF 줄 끝을 LF로 자동 변환하고 파일 시스템에 코드를 체크 아웃 할 때 그 반대로 자동 변환하는 기능이 있다.
Windows 에서는 다음과 같은 명령어를 통해 core.autocrlf 를 켜보자.
$ git config --global core.autocrlf true
해당 프로젝트에서만 사용하고 싶다면 --global 옵션을 제거해주면 된다.
그렇다고 MAC / Linux 에서는 CRLF 를 사용해야 하는가?
그 반대상황을 위한 core.autocrlf 설정도 있다.
git config --global core.autocrlf input
Whitespace 에 대한 자세한 설정을 보고 싶다면 아래의 참조에서 공식 문서를 살펴보도록 하자.