최근 진행하는 프로젝트에서 OS로 인한 충돌문제가 생겨서, 재발 방지를 위해 정리해놓으려고 한다!
문제
지금껏 협업한 사람들이 대부분 윈도우였어서 몰랐는데, 이번 프로젝트중 특이점이 발생했다.
코드 작업을 끝내고 PR을 날렸는데 내가 바꾸지도 않은 파일이 file changed로 올라간 것이다.

저 파일에서 내가 바꾼 게 없는데 왜 File Changed에 올라갔지? 라는 생각이 들어서 찾아보니, 맥북과 윈도우의 개행문자 차이라고 한다.
나는 윈도우를 사용하는데, 윈도우에서는 CR(\r), LF(\n) 를 사용하고, 맥에서는 LF만 사용한다고 한다! 너무 당황스러워서 해결방법을 후다닥 찾아보았다.
해결방법
해결방법은 생각보다 간단하다.
lf로 통일하는 게 좋을 거 같았고, 내 git config를 lf로 바꾸면 해결되는 일이었다.
# 변경 전
core.autocrlf=true
# 변경 후
core.autocrlf = input
core.eol = lf
이렇게 되도록 바꾸어주면 된다. 나는 이 프로젝트 뿐만 아니라, 전체적으로 바꾸고 싶어서 global 옵션을 사용해주었다.
명령어는 다음과 같다!
git config --global core.autocrlf input
git config --global core.eol lf
바꿔준 후에는 다음 명령어로 잘 바뀌었는지 리스트를 확인해준다.
git config -l
이렇게 하면 새로 생성될 파일들에 적용되고, 현재 진행중인 프로젝트에는 적용이 되지 않아서 git 인덱스를 한 번 초기화 해주고, 최신 커밋으로 복구해주었다.
git rm --cached -r .
git reset --hard

나를 괴롭히던 change 표시가 드디어 사라졌다!
추가로 디렉토리 내 .gitattributes에서도 설정을 추가해주어야 저장소에 커밋되는 파일들의 줄바꿈 처리 방식을 통일할 수 있다!
# 모든 텍스트 파일은 LF로 정규화
* text=auto eol=lf
이렇게 해결 끝!