[trouble shooting] git CRLF

2022. 12. 6. 00:55BACKEND/TROUBLE SHOOTING

 

 

문제

git이 갑자기 안 됨. 무슨 오류인지 파악 불가...

 

해결

config --global core.autocrlf true

 

설명

git에서는 다양한 운영체제에서 git repository를 사용할 때 수정하지 않아도 CRLF 개행 문자 차이로 인해 문제가 발생할 수 있다. 실제 코드에서는 변경된 것이 없는데 CR/LF으로 인해 줄바꿈 문자열이 달라져서 git history나 git blame을 볼 때 문제가 발생 또는 git이 변경으로 간주해 commit을 하게 될 수도 있고 변경 로그를 보거나 머지를 할 때마다 문제가 될 수도 있다. 이 문제가 생기지 않도록 하는 것이 core.autocrlf이다.

Windows에서는 line ending으로 CR(Carriage-Return, \r)과 LF(Line Feed, \n)을 사용하지만 Unix나 Mac OS는 LF(Line Feed, \n)만 사용한다.

         Windows : text + \r + \n          vs           Mac : text + \n

 

Windows에서는 true, Mac에서는 input으로 설정하면 Windows에서는 git에 코드가 올라갈 때 \r이 삭제되어 올라가고 반대로 git에서 가져올 때에는 \r를 붙여서 가져온다. Mac에서는 따로 \r이 붙지 않는데 설정하는 이유는 Mac에서 받은 email을 그대로 복사, 붙여넣기 할 때 \r가 붙을 수 있기 때문이라고 한다.

나의 경우는 OS가 Windows였고 Windows에서는 CR/LF를 사용하므로 git 저장소에서 가져올 때는 LF를 CR/LF로 변경하고 저장소로 보낼 때, 즉 text file을 object database에 넣기 전에 CR/LF를 LF로 변경하게끔 true로 설정했다.

 

참고자료

git 에서 CRLF 개행 문자 차이로 인한 문제 해결하기 (lesstif.com)

 

git 에서 CRLF 개행 문자 차이로 인한 문제 해결하기

 

www.lesstif.com

[git] Terminal로 git confi.. : 네이버블로그 (naver.com)

 

[git] Terminal로 git config설정하기 - name, email, core.autocrlf

terminal에서 바로 config를 설정할 수 있다. ▶ git 모든 설정 보기 git config --list ▶ 등록되어 있는 ...

blog.naver.com