뜬금없이 발생된 이번 문제는 이미 예전에도 몇번 경험한 현상이지만, 이번에 또 다시 재발한 김에 그 해결법을 간단히 정리해보았다.
문제점
코드 수정 내역이 많지 않았음에도, commit시 줄바꿈 기호 변환에 따라 전체 코드가 수정되는 현상
참고사항
| LF | 멀틱스, 유닉스, 리눅스, 제닉스, AIX, OS X, FreeBSD |
|---|---|
| CR+LF | DEC TOPS-10, RT-11, CP/M, MP/M, 도스, OS/2, 윈도, 심비안 OS, 팜 OS |
| CR | 코모도어 8비트 머신, TRS-80, 애플 II, 맥 OS (버전 9 이하), OS-9 |
| RS | POSIX 이전의 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 설정을 유지하자.