본문 바로가기
git

git warning: LF will be replaced by CRLF

by devstep 2022. 3. 2.

git에서 CRLF 개행 문자 차이로 인한 문제 해결

에러 메세지

warning: LF will be replaced by CRLF in   
The file will have its original line endings in your working directory

원인

  • OS마다 줄바꿈을 인식하는 문자열이 다르기 때문에
    형상 관리를 해주는 git이 바라 볼 때 어느 쪽을 선택할지 몰라 경고 메세지 발생.
  • LF (Line-Feed)
    • 현재 위치에서 바로 아래로 이동
  • CR (Carrage Return)
    • 커서 위치를 맨 앞으로 이동
  • CRLF (Carrage-Return + Line Feed)
    • 커서를 다음 라인 맨 앞으로 이동

해결방법

  • 윈도우에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변경하고, 저장소로 보낼 때는 CRLF 를 LF 로 변경하도록 true 로 설정한다.

    git config --global core.autocrlf true

core.autocrlf

git 은 저장소 메타 데이타 디렉터리인 .git 폴더에 모든 이력 데이타를 갖고 있다. 이력 데이타는 key/value 형식의 데이타베이스이며 core.autocrlf 는 text file 을 git object database 에 checkin, checkout 할 때 어떻게 처리할지를 설정하는 변수이다.

다음 세 가지 설정이 가능하다.

  • core.autocrlf = false. 기본 설정이다. 파일에 CRLF 를 썼든 LF 를 썼든 git 은 상관하지 않고 파일 그대로 checkin, checkout 한다. 이 설정은 line ending 이 다른 OS 에서는 text file 이 변경되었다고 나오므로 위에서 언급한 여러 가지 문제가 발생할 수 있다.
  • core.autocrlf = true text file을 object database 에 넣기전에 CRLF 를 LF 로 변경한다.
  • core.autocrlf = input LF를 line ending 으로 사용한다.

참고url

댓글