[Git 오류 ] warning: LF will be replaced by CRLF 해결법!

Shin·2022년 1월 12일
1

Error

목록 보기
1/4

평소처럼 열심히 수정 및 추가한 기능들을 git 에 올리기 위해 git add 를 쓰자 갑자기 등장한 오류!

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)

  • Mac, Linux (Unix 계열) 줄바꿈 문자열 = \n
  • ASCII 코드 = 10
  • 커서 위치는 그대로 두고 종이의 한라인 위로 올리는 동작
  • 현재 위치에서 바로 아래로 이동
  • 종이를 한칸올리기

CR(Carriage-Return)

  • Mac 초기 모델 줄바꿈 문자열 = \r
  • ASCII 코드 = 13
  • 커서 위치를 맨앞으로 옮기는 동작
  • 커서 위치를 앞으로 이동

CRLF (Carriage-Return+Line-Feed)

  • Windows, DOS 줄바꿈 문자열 = \r\n
  • CR(\r) + LR(\n) 두 동작을 합쳐서 (\r\n)
  • 커서를 다음라인 맨앞으로 옮겨주는 동작

이때보면 LF에 종이를 한칸 올리기? 같은게 써있어서 이게 뭐지 싶었는데 LF와 CR은 Typewriter에서 나온거였기 때문이였다.


그래서 해결법은!?

autocrlf 사용
-> check-in, check-out할 때 파일을 어떻게 처리할지 설정하는 변수

  • 시스템 전체 적용하고 싶다면 --global 옵션을 추가!

CRLF > LF 변경

core.autocrlf = true

기본 설정
플랫폼(OS) 상관없이 줄바꿈에 대한 문자열 그대로 인식해 저장하기!
(문제가 발생할 수 있기 때문에 자제할 것!)

core.autocrlf = false

LF를 line ending으로 사용한다.

core.autocrlf = input

그래서 그 중에 뭘 쓰라고..?

Windows 라면
git config --global core.autocrlf true

Linux , MAC 은
git config --global core.autocrlf input

변환 기능을 사용하지 않고, 에러 메시지만 안뜨게 하고 싶다면
git config --global core.safecrlf false

을 사용하면 된다! :)

profile
누군가의 선택지가 될 수 있는 사람이 되자

0개의 댓글