git 명령어를 사용하여 작업을 할때 다음과 같은 에러가 발생합니다.
유닉스 OS
warning: CRLF will be replaced by LF in file
Windows
warning: LF will be replaced by CRLF in file
이는 맥 또는 리눅스를 쓰는 개발자와 윈도우를 쓰는 개발자가 git으로 협업을 할 때 발생하는 Whitespace 에러입니다.
유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면, 윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed), CRLR로 이루어지기 때문입니다.
이 에러는 Git에서 어떠한 기능을 통해서 자동으로 LF --> CRLF, CRLF --> LF변환을 해줍니다.
해결방법은 core.autocrlf를 작동시키는 것입니다.
이 기능은 개발자가 git에 코드를 추가했을 때 즉, 커밋을 할 때에는 CRLF를 LF로 변환해주고, git의 코드를 개발자가 조회할 때 즉, clone을 할 때에는 LF를 CRLF로 변환해준다.
그러므로 윈도우 사용자의 경우 이러한 변환이 항상 실행되도록 다음과 같은 명령어를 입력합니다.
git config --global core.autocrlf true
시스템 전체가 아닌 해당 프로젝트에만 적용하고 싶다면 --global을 빼주면 됩니다.
리눅스나 맥의 경우, 조회할 때 LF를 CRLF로 변환하는 것을 원하지 않을 것입니다. 따라서 뒤에 input 이라는 명령어를 추가해줌으로써 단방향으로만 변환이 이루어지도록 설정합니다.
git config --global core.autocrlf true input
혹은 이러한 변환 기능을 원하지 않고, 그냥 에러 메세지를 끄고 알아서 작업하고 싶은 경우에는 아래 명령어로 경고메세지 기능인 core.safecrlf를 꺼주면 됩니다.
git config --global core.safecrlf false
[참고] git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace
'Development > Git' 카테고리의 다른 글
[Git] Github Action (0) | 2021.03.13 |
---|---|
[Git] Gitflow (0) | 2021.02.25 |
[Git] Error - refusing to allow an OAuth App to create or update workflow `.github/workflows/deploy.yml` without `workflow` scope (0) | 2021.02.22 |
[Git] Error: Repository not found (0) | 2021.02.05 |
[Git] .gitignore 와 .gitattributes 차이점 (0) | 2020.05.06 |