728x90
ERROR 내용
git add .
를 하려 했더니 오류가 떳다.
원인
이건 보통 맥 / 리눅스를 쓰는 개발자와 윈도우 쓰는 개발자가 Git으로 협업할 때 발생하는 Whitespace 에러라고 한다.
유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면,
윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed), 즉 CRLF로 이루어지는데
Git이 이 둘 중 어느 쪽을 선택할지 혼란이 온 것이다.
💡 LF (Line-Feed)
LF는 Line-Feed의 약자이다.단어가 타자기에서 비롯되었듯이, 커서는 그 자리에 둔 상태에서 종이만 한 줄을 올리는 동작을 말한다.
Mac, Linux(Unix)에서 사용되는 줄바꿈 문자열(\n)이다.
💡 CRLF (Carriage Return Line-Feed)
CRLF는 Carriage Return Line-Feed의 약자이다.여기서 Carriage Return이란 문장이 끝에 다다르면 커서는 위아래 이동 없이 가장 앞으로 이동하는 동작을 말한다.
즉, CRLF는 커서를 다음 라인의 맨 앞으로 이동하는 동작이다.
Windows에서 사용되는 줄바꿈 문자열(\r\n)이다.
해결
core.autocrlf 설정을 통해 해결할 수 있다. Git에 코드를 커밋할 때 LF와 CRLF를 서로 변환해주는 기능이다. 또한 시스템 전체에 적용할 것이라면 global 옵션을 추가해주고, 해당 프로젝트에만 적용한다면 제외하여 작성해주면 된다.
- Windows, DOS 명령어
$git config core.autocrlf true // 해당 프로젝트만 적용
$git config --global core.autocrlf true // 시스템 전체에 적용
- Linux, Mac 명령어
$git config core.autocrlf input
$git config --global core.autocrlf input
위의 방법과 달리, core.autocrlf 기능을 해제하는 방법도 있다. 해제함으로써 줄바꿈 문자열을 변환하지 않아도 에러 메시지를 안뜬다. 위의 방법과 해당 방법 중에서 선택하여 입력하면 될 것 같다.
- 기능 해제
$git config --global core.autocrlf false
참고
- https://velog.io/@realzu/Git-LF-will-be-replaced-by-CRLF-in-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EB%B2%95
- https://velog.io/@wnguswn7/Git-Bash-warning-in-the-working-copy-of-.gitignore-LF-will-be-replaced-by-CRLF-the-next-time-Git-touches-it
- https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace
'Project > 에러해결' 카테고리의 다른 글
[ERROR] ERROR Could not read configuration file from URL(kafka connect 실행) (0) | 2024.02.03 |
---|---|
[ERROR] h2 테이블 생성 안됨 (0) | 2024.01.18 |
[ERROR] Unable to find a single main class(main class 찾지 못할 때) (0) | 2024.01.13 |
[ERROR] cmd에서는 버전 확인되나, 터미널에서는 확인이 안되는 오류 (0) | 2024.01.06 |
[ERROR] 커맨드 라인/터미널에서 새로운 port 기동하기 (0) | 2024.01.06 |