Git을 통해 여러 개발자간 협업하는 경우 코드 수정사항이 없는데도 불구하고 전체 파일이 수정된 것으로 표시되는 경우가 있다. 이는 보통 운영체제별 개행 문자 차이로 인해 발생한다. 또한 Git에는 이 차이를 자동으로 처리해주는 core.autocrlf 설정이 존재하는 데 오히려 이 설정이 문제를 일으킬 수도 있다.
운영체제별 개행문자 차이
- Windows : CRLF(Carriage Return + Line Feed, \r\n, 0x0D 0x0A)
- Linux 및 macOS : LF(Line Feed, \n, 0x0D)
core.autocrlf 설정
Git에는 파일의 개행 문자를 자동으로 변환하여 저장소 내 일관되게 LF 개행 문자가 저장되도록 처리해주는 core.autocrlf 설정이 존재한다.
- false(default) : Git이 파일의 개행 문자를 변경하지 않는다.
- true : 커밋 시 CRLF를 LF로 변환하고, 체크아웃 시 LF를 CRLF로 변환한다.
- input : 커밋 시 CRLF를 LF로 변환하고, 체크아웃 시에는 변환하지 않는다.
운영체제별 권장 설정
- Windows 사용자 : true
git config --global core.autocrlf true
- Linux 및 macOS 사용자 : input
git config --global core.autocrlf input
- Git 설정 확인
git config --list
한편 오히려 core.autocrlf 설정 때문에 문제가 발생할 수도 있다. 예를 들어 모든 팀원이 Windows 운영체제를 사용한다고 했을 때 전체 팀원이 core.autocrlf 기능을 사용하지 않으면 문제가 없는데, 그 중 한명이 core.autocrlf를 true로 설정한 경우 해당 팀원이 커밋하는 순간 저장소에 파일이 LF로 변환되어 저장되기 때문에 문제가 발생할수 있다.
'개발도구' 카테고리의 다른 글
VSCode에서 Makefile 작성시 주의점 (분리 기호가 빠졌음 오류) (0) | 2025.02.12 |
---|---|
phytool 사용법 (0) | 2025.01.23 |
Visual Studio ] NO Operation 코드 (0) | 2024.12.09 |
Visual Studio ] 프로젝트 이름 바꾸기 (또는 복사해서 새 프로젝트 만들기) (0) | 2024.12.05 |
Git ] push 또는 pull 할 때 Username과 Password 묻는 경우 (0) | 2024.10.10 |