오류 발생
팀 프로젝트 기본 세팅을 하기 위해 다운로드한 파일을 인텔리 제이로 열고
-> git 연결을 하고
-> git add .을 쳤더니
평소엔 아무런 이상이 없던 상황에서 아래와 같은 에러 메세지가 발생했다.
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it
무언가 잘못 건드린 것도 없고, 깃 연결도 잘 됐는데?? 싶어서 새로 파일을 열어 깃을 연결해 보았지만 같은 에러가 발생했다.
원인
찾아보니 Whitespace 에러라고 하는데, LF와 CRLF 개행문자 차이로 인한 문제라고 한다.
- LF : Line-Feed의 약자. Unix 시스템에서 사용되는 줄바꿈 문자열(\n).
- CRLF : Carriage Return Line-Feed의 약자. Windows에서 사용되는 줄 바꿈 문자열(\r\n)
간단히 말하면, OS별로 사용하는 줄 바꿈 문자열이 달라서 Git이 둘 중 어느 쪽을 선택해야 할지 혼란이 와 생긴 에러이다.
보통 유닉스 시스템 사용 개발자와 윈도우 사용 개발자가 함께 Git으로 협업할 때 자주 발생하는 오류다.
해결 방법
core.autocrlf 설정을 통해 두 개행문자를 자동으로 변환하도록 해주면 된다.
각 OS 모두 --global을 함께 작성하면 시스템 전체에 적용하고, 제외하면 해당 프로젝트에만 적용한다.
Windows
$git config core.autocrlf true
$git config --global core.autocrlf true
Linux, Mac
$git config core.autocrlf input
$git config --global core.autocrlf input
여기서 리눅스나 맥의 경우 input을 추가해서 LF를 CRLF로 변환하지 않도록(단방향으로만 변환하도록) 설정하는 것이다.
만약 변환 없이 에러메세지만 끄고 싶다면 아래 코드를 작성하면 된다.
git config --global core.safecrlf false
'TIL' 카테고리의 다른 글
[KPT] 9조 KPT 회고 (0) | 2024.08.08 |
---|---|
[TIL] 팀과제의 정적 메소드(Static Method) 리팩토링 (0) | 2024.08.06 |
[TIL] Github에 올라간 .idea 폴더 삭제 / .gitignore 파일 미적용 해결 (0) | 2024.08.02 |
[TIL] 문자열 자르는 방법 2가지 (0) | 2024.07.31 |