평소처럼 열심히 수정 및 추가한 기능들을 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
을 사용하면 된다! :)