728x90
목차
- 개요
- 문제의 원인
- Git의 core.autocrlf 설정
- 추천 방안
1. 개요
잘 사용하던 IntelliJ 프로젝트 초기 커밋을 하던 중 위와 같은 노란 경고창이 떴다.
최근에 업데이트를 진행했었기에 무슨 문제인가 싶었다.
처음엔 안뜨던 warning이 갑자기 떠서 당황스러웠지만, 천천히 읽어보니 Git에서 라인 끝 설정과 관련된 문제를 경고하고 있었다.
이를 이해하고 해결한 방법에 대해 차근차근 알아보자.
2. 문제의 원인
여러 운영체제에서 작업하다 보면, 같은 프로젝트에서 다른 파일이 CRLF와 LF로 혼용되어 커밋될 수 있다.
이는 팀원 간에 줄 끝 문자로 인해 불필요한 변경이 발생하게 만들거나, 스크립트나 프로그램이 예상치 못한 동작을 하게 만들 수도 있다.
CRLF와 LF의 차이
CRLF: 윈도우에서는 줄 바꿈을 할 때, 캐리지 리턴(CR, \\r)과 라인 피드(LF, \\n) 두 개의 문자를 사용합니다. 이를 CRLF라고 부릅니다.
LF: 유닉스 및 유닉스 계열 운영체제(예: 리눅스, macOS)에서는 줄 바꿈을 할 때 라인 피드(LF, \\n) 문자만 사용합니다.
3. Git의 core.autocrlf 설정
Git에는 라인 끝 문제를 해결하기 위해 core.autocrlf 설정이 있다. 이 설정은 운영체제에 따라 라인 끝 문자를 자동으로 변환해 주는 기능이다.
- core.autocrlf = false: Git은 라인 끝 문자를 변환하지 않는다. 각 파일은 그대로 저장되고 체크아웃된다.
- core.autocrlf = true: 윈도우에서 주로 사용된다. 체크인할 때는 파일의 라인 끝 문자를 LF로 변환하여 저장하고, 체크아웃할 때는 CRLF로 변환한다.
- core.autocrlf = input: 유닉스 및 macOS에서 주로 사용된다. 체크인할 때는 파일의 라인 끝 문자를 LF로 변환하여 저장하지만, 체크아웃할 때는 변환하지 않는다. 즉, 저장소에는 LF로 저장되지만, 체크아웃 시에는 원래의 형태가 유지된다.
4. 추천 방안
나는 위와 같은 메세지에 대해 Fix and Commit 을 사용하였다.
이렇게 하면 라인 끝 문제를 방지할 수 있고, 코드가 여러 운영체제에서 일관되게 동작할 수 있게 된다.
만약, 윈도우에서 사용한다면 core.autocrlf 를 true로 설정하는 것이 일반적이고 유닉스/리눅스/MacOS를 사용한다면 core.autocrlf 를 input으로 설정하는 것이 좋다.
반응형
'IDE' 카테고리의 다른 글
[IntelliJ] Dependency Analyzer & Dependency Diagram 의존성 확인하기 (1) | 2024.12.04 |
---|---|
[IntelliJ] 자바 구글 코딩 컨벤션 적용하기 (0) | 2024.11.25 |