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 (윈도우)로 바꿔보기