게시글

5만명이 선택한 평균 별점 4.9의 제로초 프로그래밍 강좌! 로드맵만 따라오면 됩니다! 클릭
강좌11 - Git - 9달 전 등록

LF will be replaced by CRLF the next time Git touches it 해결법

mac에서 진행한 프로젝트를 windows에서 수정하거나, windows에서 진행한 프로젝트를 mac에서 진행하는 경우(이 때는 에러메시지의 LF와 CRLF가 반대로 나옴)에 해당 경고 메시지가 발생합니다.

깃이 LF를 CRLF로 다음 번에 바꾸겠다고 하는 메시지인데요. 먼저 LF, CRLF가 뭔지 알아보겠습니다.

  • LF(Line Feed): Mac과 Linux에서 쓰는 줄바꿈 문자인 \n을 의미합니다.
  • CRLF(Carriage Return+Line Feed): Windows에서 쓰는 줄바꿈 문자열인 \r\n을 의미합니다.

우리가 줄바꿈(엔터 클릭)을 할 때 운영체제에서는 \n나 \r\n을 몰래 붙이고 있던 것입니다!

안녕하세요.
제로초입니다.

위와 같은 글이 있다고 하면 실제로는 다음과 같이 저장되고 있는 것이죠.

안녕하세요.\n제로초입니다.

즉, 현재 메시지는 mac과 windows가 사용하는 줄바꿈 문자열이 달라서 Git이 어떤 것을 선택해야할지 몰라 발생하는 문제인 것이죠. 이 메시지는 에러가 아닌 경고라서 무시해도 되긴 하지만 문제는 LF가 자동으로 CRLF로 수정돼서 나중에 mac에서 다시 작업할 때 불편하게 됩니다.

그렇다면 해결법은 Git에게 어떤 것을 쓸 지 알려주면 됩니다. Git에는 core.eol과 core.autocrlf 속성이 있습니다. eol은 줄바꿈 문자를 어떤 걸 쓸지에 대한 설정이고, autocrlf는 파일을 Git에 불러올 때(check in) 줄바꿈 문자를 바꿀지 여부에 대한 설정입니다.

eol은 crlf, native, lf가 있고, autocrlf에는 true, false, input이 있습니다.

eol이 crlf면 줄바꿈 문자로 CRLF를 쓰는 것이고, lf면 LF를 쓰는 것입니다. native는 운영체제에 따르는 것이므로 windows에서는 CRLF를 사용하게 되고, mac에서는 LF를 사용하게 됩니다.

autocrlf가 true면 CRLF를 사용하게 되고, input이면 LF를 사용하게 됩니다. false인 경우는 기존 파일의 줄바꿈 표시를 그대로 사용합니다. false인 경우에 다른 운영체제의 줄바꿈이 그대로 사용될 수 있으므로 문제가 발생할 수 있습니다.

저는 mac의 LF를 사용할 것이므로 다음과 같이 바꿔줍니다.

git config core.eol lf
git config core.autocrlf input

따라서 위와 같이 해결했습니다.

이 설정은 이 프로젝트에만 적용되지만 혹시나 현재 컴퓨터의 모든 프로젝트에 적용하고 싶다면 --global을 붙이면 됩니다.

git config --global core.eol lf
git config --global core.autocrlf input
조회수:
0
목록
투표로 게시글에 관해 피드백을 해주시면 게시글 수정 시 반영됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright 2016- . 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.
5만명이 선택한 평균 별점 4.9의 제로초 프로그래밍 강좌! 로드맵만 따라오면 됩니다! 클릭

댓글

아직 댓글이 없습니다.