문제 상황
Git은 플랫폼 간 호환성을 위해 기본적으로 줄바꿈 방식을 자동으로 변환한다. Windows는 CRLF, macOS/Linux에선 LF로 처리한다. 그리고 git에서 이를 처리하기 위해 기본 설정을 제공한다만 ... 경고가 발생하고는 한다.
warning: in the working copy of 'filename', CRLF will be replaced by LF the next time Git touches it
운영체제를 오가며 작업하는 경우 이런 줄바꿈 형식의 불일치로 경고가 발생하거나, 파일 변경으로 추적될 수도 있다.
해결
1️⃣ `.gitattributes` 설정
루트 디렉터리에 `.gitattributes` 파일을 생성해 설정하면 된다.
이 설정은 모든 텍스트 파일의 줄바꿈을 자동으로 처리하고, 파일 형식에 따라 LR, CSLF를 강제 적용한다. 바이너리 파일에는 줄바꿈 변환을 하지 않는다.
# 모든 텍스트 파일 자동 처리
* text=auto
# LF 강제 적용 (코드 및 구성 파일)
*.js text eol=lf
*.jsx text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.json text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.md text eol=lf
*.sh text eol=lf
*.html text eol=lf
*.css text eol=lf
# CRLF 강제 적용 (Windows 전용 파일)
*.bat text eol=crlf
# 바이너리 파일은 변환 금지
*.png -text
*.jpg -text
*.gif -text
*.exe -text
*.dll -text
2️⃣ Git 글로벌 설정
- Windows
git config --global core.autocrlf true
- macOS/Linux
git config --global core.autocrlf input
설정 여부는 이렇게 확인할 수 있다.
git config --global core.autocrlf
3️⃣ 기존 파일 정규화
`.gitattributes` 설정 후, 기존 파일을 정규화하여 Git이 새 규칙에 따라 관리하도록 한다.
모든 파일을 다시 추가하려고 할 땐 이렇게 할 수 있다.
git add --renormalize .
전체 파일에 대해 커밋을 해야 하기 때문에 반드시 크로스 OS 작업을 할 때만 하는 게 좋을 것 같다... 아니면 나처럼 워닝을 도저히 봐줄 수가 없을 경우...
'Dev' 카테고리의 다른 글
VMware 호스트의 공유 폴더 마운트 (0) | 2025.07.09 |
---|---|
Android Studio 비정상 종료 후 코드 오류 발생 (0) | 2024.12.17 |
React 개행 문자('\n') 출력하기 (0) | 2024.11.26 |
React Github pages 404 File not found on refresh (0) | 2024.11.25 |
JavaScript FormData 객체 (0) | 2024.11.24 |