TIL

[TIL] Git LF will be replaced by CRLF in 에러

G_vieve 2024. 8. 1. 22:55

 

오류 발생

팀 프로젝트 기본 세팅을 하기 위해 다운로드한 파일을 인텔리 제이로 열고

-> git 연결을 하고

-> git add .을 쳤더니

평소엔 아무런 이상이 없던 상황에서 아래와 같은  에러 메세지가 발생했다.

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

무언가 잘못 건드린 것도 없고, 깃 연결도 잘 됐는데?? 싶어서 새로 파일을 열어 깃을 연결해 보았지만 같은 에러가 발생했다. 

 


원인

찾아보니 Whitespace 에러라고 하는데, LF와 CRLF 개행문자 차이로 인한 문제라고 한다.

  • LF : Line-Feed의 약자. Unix 시스템에서 사용되는 줄바꿈 문자열(\n).
  • CRLF : Carriage Return Line-Feed의 약자. Windows에서 사용되는 줄 바꿈 문자열(\r\n)

간단히 말하면, OS별로 사용하는 줄 바꿈 문자열이 달라서 Git이 둘 중 어느 쪽을 선택해야 할지 혼란이 와 생긴 에러이다.

보통 유닉스 시스템 사용 개발자와 윈도우 사용 개발자가 함께 Git으로 협업할 때 자주 발생하는 오류다.

 


해결 방법

core.autocrlf 설정을 통해 두 개행문자를 자동으로 변환하도록 해주면 된다.

각 OS 모두 --global을 함께 작성하면 시스템 전체에 적용하고, 제외하면 해당 프로젝트에만 적용한다.

 

Windows

$git config core.autocrlf true
$git config --global core.autocrlf true

Linux, Mac

$git config core.autocrlf input
$git config --global core.autocrlf input

여기서 리눅스나 맥의 경우 input을 추가해서 LF를 CRLF로 변환하지 않도록(단방향으로만 변환하도록) 설정하는 것이다.

 

만약 변환 없이 에러메세지만 끄고 싶다면 아래 코드를 작성하면 된다.

git config --global core.safecrlf false