$ git add .
명령어 입력 후 나타난 경고 메시지
warning: in the working copy of 'src/test.jsx', LF will be replaced by CRLF the next time Git touches it
경고: 'src/test.jsx'의 작업 복사본에서 LF는 Git가 다음 번에 터치할 때 CRLF로 대체됩니다
경고이기 때문에 별다른 조치 없이 커밋 후 푸시해도 정상적으로 작동함. 하지만 나는 뜨지 않게 할 것임.
위 경고 메시지에서 CR과 LF란 타자기에서 유래된 단어.
타자기에 종이를 끼워 넣고 원하는 문자를 누르면 활자가 튀어나가 종이에 잉크를 찍어낸다. 이 때 종이를 움직이게 만드는 것이 Carriage.
그리고 종이에 한 줄을 다 채우게 되면 다음 줄을 작성하기 위해서 종이를 위로 올려줘야 하는데 이 작업이 Line Feed.
종이가 단순히 위로 올라가기만 해선 안되고 이를 다시 왼족 끝(줄의 시작 위치)으로 보내줘야 함. 이를 Carriage Return이라고 함.
깃은 윈도우, 맥, 리눅스 등 다양한 운영체제에서 사용하는데 OS마다 줄바꿈 문자(개행문자)에 차이가 있어 이를 경고하는 메시지를 띄운 것.
윈도우는 개행 문자로 CRLF를, 맥과 리눅스 등 대부분의 Unix 계열은 LF를 사용함. (과거 Mac OS는 CR)
이러한 차이점으로 작업중인 코드와 원격 저장소의 코드가 충돌이 발생히지만 깃이 그 전에 자동으로 교정해준다. 그래서 내게 "당신 윈도우를 사용하는데 LF를 쓰고 있어. CRLF로 바꿔줄게~" 라는 메시지를 전달한 것.
내 상황에선 맥을 사용하는 유저의 코드를 받아 고치고, 그 코드를 커밋하는 과정에서 띄워주는 경고인듯 하다.
// Windows
$ git config --global core.autocrlf true
// Mac 등 Unix 계열
$ git config --global core.autocrlf input
// Windosw 환경에서 위 명령어로 해결이 되지 않을 경우 자동 변환 비활성화
$ git config --global core.autocrlf false