[Git] warning: in the working copy of 'filename', LF will be replaced by CRLF the next time Git touches it 오류 해결

2023. 9. 7. 13:07IT/Git

반응형

이 경고 메시지는 Git에서 발생하는 줄바꿈(line ending)과 관련된 메시지이며, 유닉스와 윈도우 사이에서 줄바꿈 문자가 다르기 때문에 자주 발생하는 문제다. 

줄바꿈 문자를 정리해보면 아래와 같다.

 

  • 유닉스, 리눅스, macOS에서는 줄바꿈 문자로 LF (Line Feed) 사용
  • 윈도우에서는 줄바꿈 문자로 CRLF (Carriage Return and Line Feed) 사용

 

Git에서는 줄바꿈 차이를 자동으로 처리해주는 설정이 있다. 이 설정은 일반적으로 크게 문제가 되지 않지만, 특정 상황에서는 원하지 않는 변경이 발생할 수 있다. 예를 들어, 텍스트 파일 외에도 바이너리 파일 등이 프로젝트에 포함되어 있는 경우, 줄바꿈 문자를 변경하면 파일이 손상될 위험이 따르긴 한다.

해당 경고는 Git이 해당 파일을 다음에 읽거나 쓸 때 LF를 CRLF로 변경하려고 한다는 것을 알려주는 메시지다. 파일의 내용은 같지만 Git에서는 두 파일을 다르게 인식하게 되어 불필요한 변경으로 여겨질 수 있으므로 다음과 같은 설정을 통해 해결할 수 있다.

 

나의 경우는 개발 PC를 주로 1대만 쓰기 때문에 그냥 전역 설정을 해두고 사용하고 있다. 

# 전역 설정 변경: 모든 저장소에 대해 이 설정을 변경하려면 아래의 명령을 실행
git config --global core.autocrlf true  # 윈도우
git config --global core.autocrlf input # macOS / Linux

# 특정 저장소 설정 변경: 현재 저장소에만 적용하려면 아래의 명령을 실행
git config core.autocrlf true  # 윈도우
git config core.autocrlf input # macOS / Linux

# .gitattributes 파일 사용: 줄바꿈 설정을 저장소에 명시적으로 추가.
# 이렇게 하면 다른 사용자가 저장소를 클론할 때 이 설정을 따르게 됨.
# .gitattributes
* text=auto
반응형