.gitattributes 설정

줄 끝 정규화, 바이너리 파일 처리, diff 설정을 포함한 포괄적인 .gitattributes 파일.

Gist
# Auto-detect text files and normalize line endings
* text=auto eol=lf

# Source code — force LF
*.ts        text eol=lf
*.tsx       text eol=lf
*.js        text eol=lf
*.jsx       text eol=lf
*.mjs       text eol=lf
*.cjs       text eol=lf
*.py        text eol=lf
*.go        text eol=lf
*.rs        text eol=lf
*.java      text eol=lf
*.kt        text eol=lf
*.rb        text eol=lf
*.php       text eol=lf
*.sh        text eol=lf

# Config / data
*.json      text eol=lf
*.yaml      text eol=lf
*.yml       text eol=lf
*.toml      text eol=lf
*.ini       text eol=lf
*.env       text eol=lf
*.env.*     text eol=lf
*.xml       text eol=lf
*.html      text eol=lf
*.css       text eol=lf
*.scss      text eol=lf

# Docs
*.md        text eol=lf
*.mdx       text eol=lf
*.txt       text eol=lf

# Windows-specific — force CRLF
*.bat       text eol=crlf
*.cmd       text eol=crlf
*.ps1       text eol=crlf

# Binary files — do not modify
*.png       binary
*.jpg       binary
*.jpeg      binary
*.gif       binary
*.ico       binary
*.svg       binary
*.webp      binary
*.avif      binary
*.woff      binary
*.woff2     binary
*.ttf       binary
*.otf       binary
*.eot       binary
*.pdf       binary
*.zip       binary
*.tar.gz    binary
*.tgz       binary
*.mp4       binary
*.webm      binary
*.mp3       binary

# Lock files — treat as text, skip diffs
package-lock.json   text eol=lf -diff
yarn.lock           text eol=lf -diff
pnpm-lock.yaml      text eol=lf -diff

# Custom diff drivers
*.json      diff=json
*.md        diff=markdown

# Mark generated files
dist/*           linguist-generated=true
build/*          linguist-generated=true
coverage/*       linguist-generated=true
*.min.js         linguist-generated=true
*.min.css        linguist-generated=true