[Git] warning: CRLF will be replaced by LF in some/file.file 에러
warning: CRLF will be replaced by LF in some/file.file.
The file will have its original line endings in your working directory.
맥/리눅스 이용 개발자와 윈도우 개발자가 협업할 때 발생하는 에러
왜?
이는 맥 또는 리눅스를 쓰는 개발자와 윈도우 쓰는 개발자가 Git으로 협업할 때 발생하는 Whitespace 에러다.
유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면,
윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed),
즉 CRLF로 이루어지기 때문이다. 따라서 어느 한 쪽을 선택할지 Git에게 혼란이 온 것이다.
유닉스 OS을 쓰고 있다면 CRLF will be replaced by LF in… 에러 메시지가 뜰 것이고,
윈도우를 사용하고 있다면 LF will be replaced by CRLF in… 에러 메시지가 뜰 것이다.
둘 중 뭐든간에 해결 방법은 같다.
Git은 똑똑해서 이를 자동 변환해주는 core.autocrlf 라는 기능을 가지고 있는데, 이 기능을 켜주기만 하면 된다.
이 기능은 개발자가 git에 코드를 추가했을 때 (예컨대 커밋할 때)에는 CRLF를 LF로 변환해주고,
git의 코드를 개발자가 조회할 때 (예컨대 clone한다거나 할 때)에는 LF를 CRLF로 변환해준다.
윈도우 사용자의 경우
이러한 변환이 항상 실행되도록 다음과 같은 명령어를 입력한다.
물론 시스템 전체가 아닌 해당 프로젝트에만 적용하고 싶다면 —global 을 빼주면 된다.
git config --global core.autocrlf true
리눅스나 맥을 사용하고 있는 경우
조회할 때 LF를 CRLF를 변환하는 것은 원하지 않을 것이다.
따라서 뒤에 input이라는 명령어를 추가해줌으로써 단방향으로만 변환이 이루어지도록 설정한다.
git config --global core.autocrlf true input
이러한 변환 기능을 원하지 않는 경우
그냥 에러 메시지 끄고 알아서 작업하고 싶은 경우에는
아래 명령어로 경고메시지 기능인 core.safecrlf를 꺼주면 된다.
git config --global core.safecrlf false
'개발 잘 하고 싶다 => 알고 쓰자 > ERROR(삽질) 모음' 카테고리의 다른 글
query string & path variable (req.query & req.params) (0) | 2021.06.29 |
---|---|
Error 를 대하는 자세 (0) | 2021.06.29 |
[Git] please move or remove them before you merge (0) | 2021.06.27 |
[Git] .ignore (0) | 2021.06.13 |
[Python][MongoDB] find_one이 None 으로 반환될때 (0) | 2021.06.10 |
댓글