Git CRLF, LF 경고

LD·2023년 12월 3일

Git Bash에서 작업 디렉토리(working directory) 상의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해 git add 명령어를 사용했다. 그런데 아래와 같은 warning 메시지가 출력됐다.

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

찾아보니 유닉스 시스템에서의 개행과 윈도우에서의 개행이 달라서 Git이 이 둘 중 어느 쪽을 선택해야할 지 모를 때 생기는 문제라고 한다.

유닉스는 한 줄의 끝이 LF(Line Feed)로 이루어지고, 윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed), CRLF로 이루어진다.

윈도우 환경에서 이를 해결하기 위해선 autocrlf를 다음과 같이 설정하면 된다.

git config --global core.autocrlf true

시스템 전체에 적용하려면 --global 옵션 추가하고, 해당 프로젝트에만 적용하고싶다면 옵션을 빼주면 된다.

만약, 그래도 해결이 되지 않을 경우 추가로 시도해볼만한 것이 몇 가지 있다.

캐시 비우기

git rm --cached -r .

변경 사항 추가 후 커밋하기

git add .
git commit -m "your_message"

core.eol 설정 확인

git config --global core.eol

만약 core.eol이 설정되어 있다면, lf로 변경해보기

git config --global core.eol lf

사용하는 Editor 설정 확인하기
Visual Studio Code의 경우, File - Preferences - Settings - 검색바에 eol 검색 - 설정을 lf (윈도우)로 바꿔보기

0개의 댓글