Study/Git

in the working copy of ... LF will be replaced by CRLF the next time Git touches it

AC 2024. 4. 19. 10:19

Git의 라인 인코딩 변환 설정 이해하기

Git은 운영체제마다 다른 라인 끝 표시(Line Ending) 규약을 해결하기 위해 자동으로 라인 인코딩을 변환하는 기능을 제공합니다. 이로 인해 개발자들은 종종 다음과 같은 메시지를 접하게 됩니다:

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

이 메시지는 Git이 package.json 파일의 라인 인코딩을 LF(Line Feed)에서 CRLF(Carriage Return + Line Feed)로 변환할 것이라는 것을 알려주는 것입니다.

운영체제별 라인 끝 표시 규약

  • Windows에서는 일반적으로 CRLF가 사용됩니다.
  • Unix 기반 시스템(Linux, macOS)에서는 일반적으로 LF가 사용됩니다.

Git은 이러한 차이를 해결하기 위해 기본적으로 작업 중인 파일의 라인 인코딩을 CRLF로 변환하는 설정을 가지고 있습니다.

문제 발생 시 해결 방법

이 메시지가 문제가 되는 경우는 파일의 라인 인코딩이 중요한 경우, 예를 들어 Linux 환경에서 작업하는 경우입니다. 이때는 Git의 라인 인코딩 변환 설정을 변경할 수 있습니다.

Git 설정에서 core.autocrlf를 input으로 설정하면, Git이 파일을 체크아웃할 때 CRLF를 LF로 변환하고, 커밋할 때는 LF를 CRLF로 변환하지 않습니다.

복사
git config --global core.autocrlf input

이렇게 설정하면 위의 메시지가 더 이상 표시되지 않을 것입니다.

Git의 라인 인코딩 변환 설정은 개발 환경에 따라 적절히 조절하여 사용하는 것이 중요합니다. 이를 통해 개발자들은 운영체제 간 호환성 문제 없이 원활하게 협업할 수 있습니다.

LIST