본문 바로가기

개발개발

Expected linebreaks to be 'LF' but found 'CRLF'

Expected linebreaks to be 'LF' but found 'CRLF'

git에서 소스를 받아서 빌드 하려다보니 위와 같은 에러를 만나게 되었다. 소스가 개발된 환경은 Mac 이라 그런지 윈도우 개발 환경에서 에러가 발생한듯 하다.

git clone 을 하고 난 직후 윈도우 매모장으로 아무 파일이나 읽어보면 개행문자 처리가 잘 되어 있는 것을 볼 수 있다. 즉, 개행문자가 윈도우 환경에 맞게 CRLF 로 변경된 것이다. 그렇다면 git에서 소스를 다운 받을때 git이 개행문자를 변경하지 않도록 하면 된다. git 설정에서 core.eol, core.autocrlf 옵션을 확인해본다.


core.eol

git이 line ending을 어떻게 처리하는지 관련된 항목

  • native : 기본설정. 시스템 설정을 따름
  • crlf : crlf를 개행문자로 사용
  • lf : lf를 개행 문자로 사용

core.autocrlf

git이 checkin, checkout 할 때 text파일을 어떻게 처리할지를 설정

  • false : 기본설정. 동작하지 않음
  • true : 체크인시에는 LF, 체크아웃시에는 CRLF를 line ending 으로 사용
  • input : LF를 line ending 으로 사용
-- 설정 확인
#> git config --list 

-- 설정 수정
#> git config --global --edit
#> git config --edit


-- core.eol 옵션을 lf 으로 변경
#> git config --global core.eol lf
#> git config core.eol lf

-- core.autocrlf 옵션을 input 으로 변경
#> git config --global core.autocrlf input
#> git config core.autocrlf input

-- clone 할때 적용
#> git clone source.git --config core.eol=lf
core.autocrlf input

윈도우 10에서 git 기본 설정 파일인 C:\ProgramData\Git\config 파일도 확인해본다.

'개발개발' 카테고리의 다른 글

Redux Style Guide  (0) 2020.01.30
리셀렉트에 대한 이해  (0) 2019.08.21
babel v7에서 babel-jest 적용기  (0) 2018.11.22
Mattermost 개발환경 구축기  (0) 2018.11.12
Webpack dev server, Spring 개발 환경 구축  (0) 2018.11.07