Skill/기반기술

CRLF LF로 생긴 문제

진열사랑 2022. 12. 14. 16:31

출처:https://velog.io/@rmaomina/CRLF-LF-error-problem-solved

CRLF/LF는 OS에 따라 다른 개행 방식이다. 리눅스와 맥같은 Unix-like System은 LF 방식을 사용하고, 윈도우는 CR/LF 방식을 사용하기 때문이다.
'CR LF는 ‘Carriage Return, Line Feed’의 약자이다. 고전 타자기에서 비롯되었다. 종이를 고정하는 Carriage를 제자리로 미는 동작 (Carriage Return, \r)과 종이를 올리고 줄을 바꾸기 위해 사용한 동작을 (Line Feed, \n) 나타낸다.

결국은 바이트일 뿐

CR과 LF도 byte code 일 뿐이다. CR은 아스키(문자 인코딩 프로토콜)에서 13 혹은 이진수로 00001101, 마찬가지로 LF도 10, 이진수로 00001010이다.

test에서 expected는 LF로 되어 있고, 내가 불러왔던 파일은 CRLF로 작성되있었던 것.

VScode에서 CRLF/LF 설정편집중인 파일에서 설정

만약 VScode에서 편집중인 파일에서 LF/CRLF의 경고 메시지가 뜬다면 에디터에서 간단하게 설정할 수 있다


Git에서 다음과 같은 에러가 나온다면?

Warning: CRLF will be replaced by LF 혹은,
Warning: LF will be replaced by CRLF

운영체에 따라 다른 경고 메시지인데, core.autocrlf기능을 비활성화하면 Unix-like와 Windows에 따라 자동으로 변환이 되지 않는다.

$ git config --global core.autocrlf false //false를 삭제하면 현재 어떻게 설정되어 있는지 알 수 있다.