[Git] warning: ~ LF will be replaced by CRLF the next time Git touches it

J·2023년 6월 26일
1

LifeIsEgg

목록 보기
2/8
post-thumbnail

$ 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이라고 함.

  • CR(Carriage Return) (\r)
    • 커서를 맨 앞으로 보냄.
  • LF(Line Feed) (\n)
    • 커서를 아래줄로 내림.
  • CRLF(Carriage Return and Line Feed) (\r\n)
    • 이 둘을 같이 씀.

깃은 윈도우, 맥, 리눅스 등 다양한 운영체제에서 사용하는데 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

reference

profile
벨로그로 이사 중

0개의 댓글