
협업 중 가장 자주 겪는 문제 중 하나는 OS마다 다른 줄바꿈(Line Ending) 문제입니다.
CRLF (\r\n)LF (\n)줄바꿈이 다르면 팀원 간 diff 노이즈, 충돌, 파일 변경 감지 등 다양한 문제가 생깁니다.
따라서 협업 시에는 Git과 Prettier를 사용해 무조건 LF로 통일하는 방법을 적용해야 합니다.
.gitattributes 파일 설정 (Git 커밋 기준 줄바꿈 통일)Git이 줄바꿈을 자동으로 감지하고 커밋 시 무조건 LF로 저장하도록 설정합니다.
.gitattributes 파일 생성* text=auto eol=lf
| 옵션 | 설명 |
|---|---|
| text=auto | 텍스트 파일을 자동으로 감지 |
| eol=lf | 줄바꿈을 LF로 강제 |
Prettier가 파일 저장 또는 포맷팅 시 줄바꿈을 LF로 강제하도록 설정합니다.
프로젝트 루트에 .prettierrc 파일 생성
{
"endOfLine": "lf"
}
| 옵션 | 설명 |
|---|---|
| endOfLine | 줄바꿈 방식 설정 (lf, crlf, auto) |
| "lf" | 줄바꿈을 LF로 강제 |
.gitattributes가 적용되었는지 확인git add .
git status
⌘ + Shift + P → Change End of Line Sequence| 파일 | 코드 | 역할 |
|---|---|---|
.gitattributes | * text=auto eol=lf | Git 커밋 시 LF로 통일 |
.prettierrc | "endOfLine": "lf" | 저장/포맷 시 LF로 강제 |
.gitattributes + .prettierrc 설정만으로 윈도우, 맥, 리눅스 관계없이 모든 줄바꿈을 LF로 통일할 수 있음| 파일 종류 | 줄바꿈 통일 | 설명 |
|---|---|---|
| .js, .jsx, .ts, .html, .css, .md 등 | ✅ 필요 | 텍스트 파일이므로 LF로 통일 |
| .png, .jpg, .pdf, .zip 등 | ❌ 불필요 | 바이너리 파일은 Git이 자체 관리 |
settings.json에 다음을 추가하면 VSCode 자체에서도 줄바꿈을 LF로 고정할 수 있습니다.
"files.eol": "\n"