본문 바로가기
개발도구

Git ] 코드 변경이 없는 데 전체 파일이 수정된 것으로 표시되는 경우

by eteo 2025. 3. 21.

 

Git을 통해 여러 개발자간 협업하는 경우 코드 수정사항이 없는데도 불구하고 전체 파일이 수정된 것으로 표시되는 경우가 있다. 이는 보통 운영체제별 개행 문자 차이로 인해 발생한다. 또한 Git에는 이 차이를 자동으로 처리해주는 core.autocrlf 설정이 존재하는 데 오히려 이 설정이 문제를 일으킬 수도 있다.

 

 

운영체제별 개행문자 차이

  • Windows :  CRLF(Carriage Return + Line Feed, \r\n, 0x0D 0x0A)
  • Linux 및 macOS : LF(Line Feed, \n, 0x0D)

 

 

core.autocrlf 설정

Git에는 파일의 개행 문자를 자동으로 변환하여 저장소 내 일관되게 LF 개행 문자가 저장되도록 처리해주는 core.autocrlf 설정이 존재한다.

  • false(default) : Git이 파일의 개행 문자를 변경하지 않는다.
  • true : 커밋 시 CRLF를 LF로 변환하고, 체크아웃 시 LF를 CRLF로 변환한다.
  • input : 커밋 시 CRLF를 LF로 변환하고, 체크아웃 시에는 변환하지 않는다.

 

 

운영체제별 권장 설정

  • Windows 사용자 : true
git config --global core.autocrlf true

 

  • Linux 및 macOS 사용자 : input
git config --global core.autocrlf input

 

  • Git 설정 확인
git config --list

 

 

 

한편 오히려 core.autocrlf 설정 때문에 문제가 발생할 수도 있다. 예를 들어 모든 팀원이 Windows 운영체제를 사용한다고 했을 때 전체 팀원이 core.autocrlf 기능을 사용하지 않으면 문제가 없는데, 그 중 한명이 core.autocrlf를 true로 설정한 경우 해당 팀원이 커밋하는 순간 저장소에 파일이 LF로 변환되어 저장되기 때문에 문제가 발생할수 있다.