IDE에서 GIT을 이용하다 보면 가끔 

 

파일 전체가 변경되었다고 표기되면서 변경점을 잡아내지 못하는 경우가 있습니다. 

 

혹은 PULL 받아온 파일에는 분명 변경된 점이 없는데, GIT에서 변경점을 잡아 오류처럼 보이기도 합니다. 

 

이는 CRLF설정 때문에 발생하는 현상입니다. 

 

 

CRLF 개행문자, 운영체제별로 각각 설정이 다르다 

 

CRLF는 띄어쓰기를 입력할 때 코드를 \r, 혹은 \n, 혹은 \r\n 어느 것으로 개행문자를 입력할 지를 구분짓는 설정입니다. 

 

운영체제별로 설정이 달라 Unix, Linux는 \n 

 

클래식 Mac Os ( 9버전 이하 ) 는 \r

 

Windows OS는 \r\n으로 표기합니다. 

 

이러한 차이점 때문에, OS와 상관없이 공통된 코드를 관리하는 시스템 ( IDE, GIT 등 ) 에서는 아무런 차이가 없는 파일처럼 보이더라도

 

띄어쓰기의 개행문자를 해석하는 과정에서 차이가 있는 것으로 인식할 수 있습니다. 

 

이러한 점을 고려하여서 여러 IDE에서는 CRLF 설정을 지원하고 있습니다. 

 

Intellij, 하단 사이드바 및 설정페이지에서 변경 가능하다.

 

 

인텔리제이는 공식 문서에서 친절하게 CRLF 설정과 바꾸는 법에 대해 설명해주고 있습니다. 

 

 

Configure line separators | IntelliJ IDEA

 

www.jetbrains.com

 

첫째로, 아래의 사이드바의 버튼을 통해서 바꾸는 방법이 있습니다.

 

아래 사이드바에서 간단하게 변경할 수 있다.

 

둘째로, 직접 설정페이지의 Code Style에서 바꾸는 방법이 있습니다. 

 

CodeStyle 항목의 Line Separator, 운영체제에 의존하도록 바꿀수도 있다.

 

Eclipse, WorkSpace 설정 및 EGit의 auto CRLF 설정이 있다.

 

이클립스 역시 WorkSpace에서 "New text file line delimiter를 통해서 os, 혹은 windows/ Unix로 바꿀 수 있습니다. 

 

다만 바꿀 시에 어떤 개행문자를 사용하는지 명확하게 나타나지는 않습니다. 

 

CR, LF, CRLF 어떤 개행문자를 사용하는지 명확하게 표기되지는 않는다.

 

Eclipse 내부에서 사용할 수 있는 e-git에서는 git에서 제공하는 auto CRLF 기능을 추가적으로 설정할 수 있는데, 

 

이는 "git config --global core.autocrlf true" 라고 하는 git의 기본 설정을 IDE 내부에서 설정으로 바꿀 수 있도록 

 

UI를 구현해주는 기능입니다. 

 

이를 true로 구현하면 window에서는 파일을 가져올 때  \r( LF ) 가 \n\r ( CRLF )로 바뀌게 되고 

 

PUSH할 때는  \n\r ( CRLF )가 \r( LF ) 로 변경됩니다. 

 

autocrlf 설정을 바꿀 수 있다.

 

이 설정은 초기에 True처리 되어있기 때문에, e-git을 사용할 때 만일 다른 사람이 CRLF로 개행한 코드를 가져오게 되면 

 

변경사항이 없음에도 파일 전체가 변경된 것으로 인식할 수 있으니 

 

파일에 변경사항이 없는데도 변경된 것 처럼 인식될 경우 관련설정을 false 처리 해보시기 바랍니다. 

 

 

 

VsCode, 하단 사이드바 및 설정페이지의 Eol 항목에서 변경가능하다. 

 

VsCode 역시 하단의 CRLF 항목으로 현재 적용되는 개행문자를 변경할 수 있습니다. 

 

Intellij와 같이 바로 보여준다.

 

더 자세히 변경하고 싶다면 설정에서 Eol을 입력하면 됩니다. 

 

auto로 os에 의존하도록 변경할 수 있다.

 

 

혹시 형상관리 툴을 사용할 때, 변경사항이 없는데도 문제가 발생한다면 

 

이처럼 IDE의 여러 개행문자 설정을 다시 한 번 점검해 보시길 바랍니다. 

 

+ Recent posts