문제 상황 windows에서는 개행 문자로 CR(Carriage-Return, \r)과 LF(Line Feed, \n)을 사용 하지만, Unix 나 Mac OS 는 LF 만 사용한다. 이로 인해 같이 작업하는 사람들 중 환경 차이가 있거나 본인이 두 환경을 번갈아 쓰는 경우에 골치아픈 문제가 발생 가능하다. 실제 코드는 변경된 게 없는데 소스의 CR/LF 때문에 변경으로 착각하는 경우도 있을 수 있고, 코드 실행시에도 (특히 docker 같은) 문제가 될 소지가 있다. 알아보기 git에서 개행 문자를 어떻게 처리하는지 가능한 설정 core.eof native git config --global core.eol native # 기본 설정. 시스템에서 line ending 을 처리하는 방법에 따른다. # windows에서는 CRLF 를 사용하고 Linux, OS X 는 LF 만 사용 crlf git config --global core.eol crlf # CRLF 사용 lf git config --global core.eol lf # LF 사용 설정확인 git config --global --list|grep core.eol 해결 방법 core.autocrlf false git config --global core.autocrlf false # 기본 설정 # CRLF 를 썼든 LF 를 썼든 git 은 상관하지 않고 파일 그대로 checkin, checkout # 위의 문제상황이 그대로 반복됨 true git config --global core.autocrlf true # text file을 object database 에 넣기전에 CRLF 를 LF 로 변경 윈도에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변경하고 저장소로 보낼 때는 CRLF 를 LF 로 변경하도록 true 로 설정. input git config --global core.autocrlf input # LF를 사용 리눅스, 맥, 유닉스는 LF 만 사용하므로 input 으로 설정한다.
CRLF 개행 문제 및 해결방법
문제 상황
windows에서는 개행 문자로 CR(Carriage-Return, \r)과 LF(Line Feed, \n)을 사용 하지만,
Unix 나 Mac OS 는 LF 만 사용한다.
이로 인해 같이 작업하는 사람들 중 환경 차이가 있거나 본인이 두 환경을 번갈아 쓰는 경우에 골치아픈 문제가 발생 가능하다.
실제 코드는 변경된 게 없는데 소스의 CR/LF 때문에 변경으로 착각하는 경우도 있을 수 있고,
코드 실행시에도 (특히 docker 같은) 문제가 될 소지가 있다.
알아보기
core.eof
해결 방법
core.autocrlf
윈도에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변경하고 저장소로 보낼 때는 CRLF 를 LF 로 변경하도록 true 로 설정.
리눅스, 맥, 유닉스는 LF 만 사용하므로 input 으로 설정한다.
'기술개발 > Git, Github' 카테고리의 다른 글