한창 수업을 듣기 시작할 때, github를 연결하고 작성한 코드를 github에 올리려고 add 를 하는데 다짜고짜 warning: LF will be replaced by CRLF in
에러 메시지가 뜨면서 파일이 다 안 올라간 적이 있다.
그때야 처음에 내가 뭔가 잘못 눌러서 이상한 화면이 뜨는 바람에 뭔가 놓쳤나? 하면서 당황했지만 구글에 검색하니 명령어 한 줄이면 쉽게 해결할 수 있는 문제였다.
이 에러는 서로 다른 OS, 그러니까 MacOS
와 WindowsOS
를 사용하는 개발자들이 협업할 때에 발생하는 문제이다. Unix 계열의 OS들은 줄바꿈(개행)을 할 때마다 한 줄의 끝이 LF(Line Feed)로 이루어지고, WindowsOS는 CR(Carriage Return)으로 한줄의 끝이 이루어져있기 때문에 양식이 통일되지 않아, Git이 혼란에 빠진 것이다.
다행히도 똑똑한 git은 이 문제를 해결할 core.autocrlf
라는 기능을 가지고 있어서, 명령어를 통해서 이것의 옵션을 켜주면 된다!
💻 윈도우 OS에서의 해결법
git config --global core.autocrlf true
💻 맥 OS에서의 해결법
git config --global core.autocrlf true input
두 방법 모두 다 --global
옵션이 들어가있는데, 이는 시스템 전체에 core.autocrlf
의 ON/OFF를 적용하지 않고, git을 add 하는 현재 경로의 프로젝트에만 이것을 적용하겠다는 뜻이다.
그러다보니 윈도우 사용자들은 --global 옵션을 빼고 명령어를 치고, 맥 사용자들은 --global 옵션을 끼고 해당 명령을 실행하기를 권장한다.
서로 다른 OS를 가진 작업자들끼리 협업하면서 일어나는 문제이기도 하고 다른 분들의 velog에도 심심찮게 찾아볼 수 있는걸 보니 흔하기도 하고 정말로 어쩔 수 없이 번거로움을 감수해야하는 오류인 것 같다.
하지만 내 경우에는 RunJS
를 이용해서 수업을 들으면서 실행했던 코드를 저장한 파일을 올릴 때마다 저런 오류가 떴었다! 그래서 더이상 RunJS
로는 파일 저장을 하지 않고 다른 툴을 이용해서 저장을 하는데도 이 오류가 끊임없이 뜬다.
그리고 난 아직 다른 사람들과 협업해서 프로젝트를 할 만큼의 수준도 아니라 다른 OS 사용자들과 js파일을 교환할 일이 없는데 대체 뭘까? 🤔🤔