json 이용 시 LF will be replaced by CRLF 경고

Bora.K | 권보라·2023년 12월 3일
0

오류모음zip

목록 보기
2/2

json 파일 관련 에러

warning: in the working copy of 'db.json', LF will be replaced by CRLF the next time Git touches it

git add .

해당 명령어 사용 시 위와 같은 warning이 계속 떴다. 커밋, 푸쉬하는데는 문제가 없어서 그냥 안본 눈 하고 있는데, 계속 뜨니까 신경이 쓰여서 원인과 해결책을 찾아보았다. 도대체 LF는 뭐고 CRLF는 뭔지...

1. LF(Line-Feed)

  • Unix 운영체계(Linux, MacOS)에서 사용되는 스타일
  • 줄바꿈 문자열 = \n
  • 커서를 다음 줄로 이동

2. CR(Carriage-Return)

  • Mac 초기 모델의 스타일
  • 줄바꿈 문자열 = \r
  • 커서를 맨 앞으로 이동

2. CRLF(Carriage-Return + Line-Feed)

  • Windows, Dos 운영체계에서 사용되는 스타일
  • 줄바꿈 문자열 = \r\n
  • 커서를 줄의 시작 부분으로 이동한 후 다음 줄로 이동

'db.json' 파일의 로컬 작업 복사본에 있는 줄바꿈 스타일이 현재 LF이지만 Git이 다음에 해당 파일과 상호 작용할 때 이를 CRLF로 대체한다는 것이다. 저장소에 줄바꿈 스타일이 혼합되어 있어서 해당 파일을 읽어오는 과정에서 혼란이 생겨 발생하는 문제인 듯 했다. 아마 내가 맥북과 데스크탑(windows)을 왔다갔다 하면서 작업하고 있는데, 그러면서 발생한 문제인 듯 했다.

Git과 같은 버전 제어 시스템의 맥락에서 다양한 플랫폼에 걸쳐 프로젝트를 공동 작업할 때, 플랫폼마다 줄바꿈 문자열이 다르기 때문에 이런 경고 메세지가 나타난다. 한 가지 스타일로 일관되게 처리하지 않으면 텍스트 파일이 해석되는 방식에 문제가 발생할 수 있기 때문에 통일하는 것이 좋다.

해결 방법

1. autocrlf 설정하기

Git에 코드를 커밋할 때 LF와 CRLF를 서로 변환해 준다.
시스템 전체에 적용하려면 global 옵션을 사용한다.

  • Windows, DOS
git config core.autocrlf true
git config --global core.autocrlf true
  • Linux, Mac
git config core.autocrlf input
git config --global core.autocrlf input

2. 경고 무시하기

줄바꿈 형식을 변경하고 싶지 않다면 경고를 무시해도 된다. Git은 계속 작동하지만 크로스 플랫폼 환경에서 작업할 경우 신경이 쓰일 수도 있다. 지금 당장은 문제가 없지만, 나중에 파일을 읽어올 때 문제가 생길 수 있으니 자동 변환을 해주는 것이 좋을 것 같다.

autocrlf 기능 해제하기

$git config --global core.autocrlf false
profile
Frontend Engineers

0개의 댓글