git add 명령어를 실행하다 보면 아래 경고창을 마주칠 때가 있다.
LF will be replace by CRLF the next time Git touches it
찾아보니 Windows 운영체제에서 Git을 사용할 때, core.autocrlf 설정과 관련된 경고라고 한다.
1. LF와 CRLF
경고에 등장하는 LF와 CRLF는 무엇일까.
이들은 줄바꿈문자, 즉 개행문자를 나타내는 것으로 텍스트 파일에서 줄을 구분하는 데에 사용한다.
▶ LF (Line Feed)
Unix 및 Unix 기반 시스템에서 사용되는 줄 바꿈 문자이며, 단순히 줄을 다음으로 이동시키는 역할을 한다. (₩n)
ASCII 코드에서는 10진수 값으로 10에 해당한다.
▶ CRLF (Carriage Return + Line Feed)
DOS 및 Windows 시스템에서 사용되는 줄 바꿈 문자로, 줄을 다음으로 이동한 후 커서를 줄의 시작 부분으로 이동시킨다.
ASCII 코드에서 10진수 값으로 13(Carriage Return)과 10(Line Feed)에 해당한다.
즉 Unix 계열에서는 LF를, Windows 계열에서는 CRLF를 사용하며, 이로 인해 크로스플랫폼 프로젝트에서 문제가 될 수도 있다고 한다.
2. core.autocrlf 설정
Git에서 제공하는 core.autocrlf 설정은 Git이 작업 디렉토리에서 줄바꿈 문자를 어떻게 다루는지를 제어한다.
아래의 3가지 설정이 가능하다.
▶ core.autocrlf=false : Git이 줄바꿈 문자를 변경하지 않음
▶ core.autocrlf=true : 저장소에서 가져올 때 CRLF를 LF로 변환함 / 저장소로 보낼 때는 LF를 CRLF로 변
▶ core.autocrlf=input : LF 사용
3. 해결 방법
위 경고는 OS간 서로 다른 줄바꿈 문자 때문에 Git이 표출한 메시지이며, core.autocrlf 설정을 통해 해결할 수 있다.
Windows의 경우 CRLF를 사용하므로, core.autocrlf를 true로 설정한다.
git config --global core.autocrlf true
Linux, Unix의 경우 LF만을 사용하므로 core.autocrlf를 input로 설정한다.
git config --global core.autocrlf input
아니면 아예 false를 줌으로써, core.autocrlf를 해제해 버리는 방법도 가능하다.
git config --global core.autocrlf false
끝!