본문 바로가기

Development/Git

[Git] warning: LF will be replaced by CRLF in file

728x90

 

Git Logo

 

git 명령어를 사용하여 작업을 할때 다음과 같은 에러가 발생합니다.

유닉스 OS

warning: CRLF will be replaced by LF in file

 

Windows 

warning: LF will be replaced by CRLF in file

 

이는 맥 또는 리눅스를 쓰는 개발자와 윈도우를 쓰는 개발자가 git으로 협업을 할 때 발생하는 Whitespace 에러입니다.

유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면, 윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed), CRLR로 이루어지기 때문입니다.

 

이 에러는 Git에서 어떠한 기능을 통해서 자동으로 LF --> CRLF, CRLF --> LF변환을 해줍니다.

해결방법은 core.autocrlf를 작동시키는 것입니다.

 

이 기능은 개발자가 git에 코드를 추가했을 때 즉, 커밋을 할 때에는 CRLF를 LF로 변환해주고, git의 코드를 개발자가 조회할 때 즉, clone을 할 때에는 LF를 CRLF로 변환해준다.

그러므로 윈도우 사용자의 경우 이러한 변환이 항상 실행되도록 다음과 같은 명령어를 입력합니다.

git config --global core.autocrlf true

시스템 전체가 아닌 해당 프로젝트에만 적용하고 싶다면 --global을 빼주면 됩니다.

 

리눅스나 맥의 경우, 조회할 때 LF를 CRLF로 변환하는 것을 원하지 않을 것입니다. 따라서 뒤에 input 이라는 명령어를 추가해줌으로써 단방향으로만 변환이 이루어지도록 설정합니다.

git config --global core.autocrlf true input

 

혹은 이러한 변환 기능을 원하지 않고, 그냥 에러 메세지를 끄고 알아서 작업하고 싶은 경우에는 아래 명령어로 경고메세지 기능인 core.safecrlf를 꺼주면 됩니다.

git config --global core.safecrlf false

 

[참고] git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace

728x90