본문 바로가기
Git

Git 에서 CRLF 개행 문자 차이 해결

by sky-j 2023. 6. 28.
반응형

CRLF 란?

CR: Carriage Return (\r)

LF: Line Feed (\n)

해당 용어(CR, LF)는 새로운 줄 (New line) 으로 바꾸는 방식을 의미한다.
Windows에서는 line ending으로 CR, LF를 사용하고
Unix, Max OS 는 LF만 사용하기 때문에 문제가 발생한다.
이런 문제를 방지하기 위해 OS 가 달라도 문제가 없도록 crlf 처리 방법을 결정해야 한다.

Git 설정

core.eof : git 이 line ending을 처리하는데 관련 된 항목

  • core.eol = native. 기본 설정. 시스템에서 line ending 을 처리하는 방법에 따른다. windows에서는 CRLF 를 사용 Linux, OS X 는 LF 만 사용

  • core.eol = crlf CRLF 를 line ending 으로 사용

  • core.eol = lf LF를 line ending 으로 사용

## 설정
git config --global core.eol native

## 설정 확인
git config --global --list|grep core.eol

core.autocrlf: text file 을 git object database 에 checkin, checkout 할 때 어떻게 처리할지를 설정하는 변수이다.

  • core.autocrlf = false. 기본 설정. CRLF든 LF든 어떤 걸 사용하든 어떤 변화도 주지 않고 checkin, checkout을 한다.

  • core.autocrlf = true text file을 object database 에 넣기전에 CRLF 를 LF 로 변경한다

  • core.autocrlf = input LF를 line ending 으로 사용한다

해결책

1. 기본적으로 LF로 맞춰주는 걸 권장하기 때문에 Windows사용자는 ide에서 LF설정으로 맞춰놓고 사용하는 걸 추천.

**Jetbrains 설정

2. Git 설정으로 해결

WIndows: 윈도우에서는 CRLF를 사용하므로 저장소에서 가져올 때 LF를 CRLF로 변경하고 저장소로 보낼 때는 CRLF를 LF로 변경하도록 true로 설정한다.

git config --global core.autocrlf true

Linux, Mac OS: 리눅스, 맥, 유닉스는 LF 만 사용하므로 input 으로 설정한다.

git config --global core.autocrlf input
반응형