윈도우 환경에서 PowerShell을 이용햇 git을 사용하다가 git add 명령을 실행하니 다음과 같은 경고 메시지가 발생했다.
C:\\workspace> git add -A
warning: LF will be replaced by CRLF in .idea/workspace.xml.
The file will have its original line endings in your working directory
수정된 파일들을 스테이징하려고보니 LF가 CRLF로 대체된다는 경고 메시지를 뿌린다.
LF와 CRLF
LF는 Line-Feed 문자를 의미하며 CRLF는 Carriage-Return + Line-Feed 를 의미한다. LF는 리눅스와 맥 운영체제에서의 줄바꿈 문자(\n)로 사용되고 있으며, CRLF는 윈도우와 DOS 운영체제에서 줄바꿈 문자(\r\n)로 사용되고 있다.
소스코드를 관리하는 git은 윈도우에서도 사용되고, 리눅스에서도 사용되는데 줄바꿈을 어떻게 처리할지 정확하게 지정되어 있지 않아 알아서 처리하고 경고 메시지를 띄워준 것이다.
해결방법
여러 OS에서 작업하거나 협업을 하는 경우 줄바꿈 문자가 달라서 커밋 내역이나 설정 파일 등이 이상해지는 경우가 종종 발생한다. 따라서 줄바꿈 문자를 통일시키는게 좋다.
git에서는 core.autocrlf 설정을 통해 줄바꿈 문자를 다루는 방법을 정의할 수 있다.
$ git config --global core.autocrlf true
core.autocrlf 설정이 가질 수 있는 값은 총 3가지다.
- false (default)
- 파일에 있는 줄바꿈 문자를 그대로 반영
- true
- 파일 체크인할 때 CRLF가 있으면 LF로 변경
- 체크아웃할 때 LF를 CRLF로 변경
- input
- 파일 체크인할 때 CRLF가 있으면 LF로 변경
- 체크아웃 할 때 저장소 텍스트를 그대로 가져옴
윈도우 환경이라면 true로 설정해두고 쓰는게 좋다.
댓글