본문 바로가기

Thing about programming/Git

[Git] LF와 CRLF

해당 단어를 접한 건 git에서 merge를 하며 만난 warning message 때문이었습니다.

 

warning: LF will be replaced by CRLF in merge.

 

'앗.. merge할 때 LF가 CRLF로 대체되는구나.. 근데 그것들이 뭔데?'

 

 

* MDN에서의 설명입니다. *

CR = Carriage Return (\r, 0x0D in hexadecimal, 13 in decimal) — moves the cursor to the beginning of the line without advancing to the next line.
LF = Line Feed (\n, 0x0A in hexadecimal, 10 in decimal) — moves the cursor down to the next line without returning to the beginning of the line.

 

CR

ASCII값으로, 커서를 맨 앞 첫 글자로 옮긴다는 뜻입니다.

CRLF

ASCII값으로, 커서를 다음 줄의 첫 글자로 옮기라는 말입니다. 

LF (Line Feed)

ASCII 값으로, 커서는 그 위치에 두고 다음 새 줄의 해당 위치로 옮기라는 뜻입니다. 

 

각 OS마다 3개의 옵션들 중 선택하기 때문에 Git에서는 이를 통일시킨다는 의미로 warning메시지를 띄운 것 같습니다.

이 때 원하는 옵션을 설정하고 싶다면 'core.autocrlf' 변수에 지정을 할 수 있습니다.

해당 변수는 git을 설치할 때 자동으로 선택되는데, 물론 이것을 변경할 수 있습니다.

 

3가지 옵션에 대한 친절한 설명이 아래 첫 참조 링크에 있습니다. :-)

 

첫 코멘트는

보통 window환경 기준으로

1. Unix 환경하에 프로젝트를 실행한다면 +그리고 Unix 방식의 line ending을 원치 않는다면, core.autocrlf : true

  true 값이라면

2. Window 환경 하에 프로젝트를 실행한다면 +그리고 Unix 방식의 line ending을 원한다면, core.autocrlf: false

3. 그리고 core.autocrlf: input

 

위에서 얘기한 warning message는 UNIX방식의 LF를 window환경 아래에서 유지되게끔 git에서 보장해주지 않을 것이라는 이야기였습니다.

 

제 core.aurocrlf 변수를 확인해보면 true로 되어 있습니다.

 

저는 window환경을 전제로 프로젝트를 진행할 예정으로 해당 값을 false로 변경해주는 것이 맞는가 고민했습니다.

다른 이용자들의 답변을 보면 같은 환경 내에서도 선호하는 방식이 다 다른 듯해보였기 때문입니다.

 

그리고 두 번째 코멘트의 설명 읽고 저는 CRLF 사용을 유지하기로 결정했습니다.

그 내용입니다.

1. core.autocrlf: true 로 한다면 서로 다른 환경간에 자동 변환을 해준다는 장점이 있고, 대신 내용이 변환되기에 내 정보를 잃어버릴 가능성이 있다는 단점이 존재합니다. 따라서 해당 문제에 대해 인지하라고 warning이 뜹니다. 

2. core.autocrlf: false 로 한다면 변환이 없습니다. 대신 다양한 환경에서 프로젝트를 진행하지 않을 때 적절합니다.

 


참조

https://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf

 

Git replacing LF with CRLF

On a Windows machine, I ran added some files using git add. I got warnings saying: LF will be replaced by CRLF What are the ramifications of this conversion?

stackoverflow.com

https://dabo-dev.tistory.com/13

 

[Git 경고 메세지] LF will be replaced by CRLF in 해결 방안

안녕하세요(・∀・)ゞ Git을 설치하고 GitBash에서 git add 명령어를 입력했는데 git add bora.txt warning: LF will be replaced by CRLF in bora.txt. The file will have its original line endings in your..

dabo-dev.tistory.com

 

 

 


22.08.02

 

다른 문구로 해당 개념 또 접했습니다.

 

warning: LF will be replaced by CRLF in src/App.js.
The file will have its original line endings in your working directory