Git CRLF 에러 핸들링

김기현·2022년 9월 8일
0
post-thumbnail

터미널에 git을 입력하거나 git add .로 파일을 추가할 때 다음과 같은에러가 뜨는 경우가 있습니다.warning: LF will be replaced by CRLF in src/week02/khkim/Khkim03.java. The file will have its original line endings in your working directory

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

Git CRLF Error

왜 위의 사진과 같은 에러가 발생한 것일까요?

해당 에러가 발생하는 이유는 유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면, 윈도우에서는 줄 하나가 CR(Carriage Return)LF(Line Feed), 즉 CRLF로 이루어져 있기 때문입니다. 따라서 어느 한 쪽을 선택할 지 Git에게는 혼란이 발생해 다음의 경고를 내뱉은 것입니다.

유닉스 OS을 쓰고 있다면 CRLF will be replaced by LF in… 경고 메시지를, 윈도우를 사용하고 있다면 LF will be replaced by CRLF in… 경고 메시지가 뜰 것입니다.

해결방법

core.autocrlf를 켜주자!

Git은 생각보다 똑똑하기에, 이를 자동으로 변환해주는 기능을 가지고 있습니다. 바로 core.autocrlf라는 기능인데, 이 기능을 켜주면 됩니다.

이 기능을 통해 개발자가 git에 코드를 커밋할 때, CRLFLF로 변환해주고, git의 코드를 개발자가 조회할 때(Clone 등)에는 LFCRLF로 변환해줍니다.

윈도우 사용자라면

변환을 하기 위해 윈도우 사용자라면 다음의 명령어를 입력합니다.
git config --global core.autocrlf true

--global은 시스템 전체에 해당되도록 하는 옵션으로 프로젝트에만 해당되도록 하려면 해당 옵션을 빼주면 됩니다.

리눅스 혹은 맥 사용자라면

변환을 하기 위해 리눅스 혹은 맥 사용자라면 다음의 명령어를 입력합니다.

git config --global core.autocrlf true input

리눅스 혹은 맥 사용자의 경우, 조회를 할 때 LF를 CRLF로 변환하지 않고 싶어할텐데요. 따라서 input이라는 명령어를 추가해서 단방향으로만 변환이 이루어지도록 합니다.


혹은 이런 변환 기능을 원하지 않는 경우가 있을 수 있을텐데요. 그냥 에러 메세지를 끄고 알아서 작업하고 싶을 경우는 아래의 명령어로 core.safecrlf를 끄면 됩니다.

git config --global core.safecrlf false

profile
피자, 코드, 커피를 사랑하는 피코커

0개의 댓글