해당 단어를 접한 건 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을 설치할 때 자동으로 선택되는데, 물론 이것을 변경할 수 있습니다.
첫 코멘트는
보통 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에서 보장해주지 않을 것이라는 이야기였습니다.
저는 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
'Thing about programming > Git' 카테고리의 다른 글
[ Git ] Git / Github 질문에 대한 짧은 생각 + Git 관련 인터뷰 질문 40가지에 대한 답변 (0) | 2022.08.25 |
---|---|
[ Git ] 브랜치 지우기 (0) | 2022.08.02 |
[ Git ] 브랜치 2개 병합 삽질 기록. 으쌰으쌰 (0) | 2022.07.31 |
[Git] 로컬 폴더 - 깃허브 레포 연결 (0) | 2022.07.15 |