뜬금없이 발생된 이번 문제는 이미 예전에도 몇번 경험한 현상이지만, 이번에 또 다시 재발한 김에 그 해결법을 간단히 정리해보았다.

문제점

코드 수정 내역이 많지 않았음에도, commit시 줄바꿈 기호 변환에 따라 전체 코드가 수정되는 현상

📌

참고사항

LF멀틱스, 유닉스, 리눅스, 제닉스, AIX, OS X, FreeBSD
CR+LFDEC TOPS-10, RT-11, CP/M, MP/M, 도스, OS/2, 윈도, 심비안 OS, 팜 OS
CR코모도어 8비트 머신, TRS-80, 애플 II, 맥 OS (버전 9 이하), OS-9
RSPOSIX 이전의 QNX
  • 윈도우 ↔ 맥 OS 협업 간 발생할 수 있는 현상

  • 윈도우에서 CRLF 방식으로 줄바꿈처리되어 commit된 코드를, 맥에서 코드변경이 발생하면 LF 방식으로 자동변경됨에 따른 문제

해결 방법

git config --list

core.autocrlf 값의 종류

  • true(windows용) : commit할때 CRLF를 LF를 변환하고 checkout할때 LF를 CRLF로 변환한다.

  • input(*nix용) : commit할때만 CRLF를 LF로 변환한다.

  • false : autocrlf 미사용

나의 경우 core.autocrlf = false로 되어있었다. (여기까진 정상. 만약 false가 아니라면 false로 변경하자)

다시 커밋 시 마찬가지로 다음과 같은 경고창이 출력된다.

IntelliJ와 같이 인텔리한 IDE에서는 core.autocrlf 설정이 되어있지 않은 경우

**“You are about to commit CRLF line separators to the Git repository”**라는 경고 메시지가 출력된다.

[Fix and Commit] 버튼 클릭 시 core.autocrlf = input으로 설정 해버리기 때문에, [Commit As Is] 버튼을 클릭하여 core.autocrlf = false 설정을 유지하자.

출처 : https://mingggu.tistory.com/154