-
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy path.gitattributes
More file actions
285 lines (233 loc) · 8.98 KB
/
.gitattributes
File metadata and controls
285 lines (233 loc) · 8.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
# =============================================================================
# Git Attributes
# =============================================================================
#
# Path-specific settings for Git operations.
# Documentation: https://git-scm.com/docs/gitattributes
#
# This file is portable - copy to other repos without modification.
#
# -----------------------------------------------------------------------------
# How It Works
# -----------------------------------------------------------------------------
#
# Git attributes control:
# - Line ending normalization (text, eol)
# - Diff output format (diff)
# - Merge strategy (merge)
# - Binary file handling (binary)
# - Git LFS tracking (filter=lfs)
# - GitHub language statistics (linguist-*)
#
# -----------------------------------------------------------------------------
# Common Attributes
# -----------------------------------------------------------------------------
#
# text Normalize line endings on commit
# text=auto Let Git detect text vs binary
# text eol=lf Force LF line endings (Unix)
# text eol=crlf Force CRLF line endings (Windows)
# binary Treat as binary (no line ending conversion)
# diff=python Use Python-specific diff algorithm
# -diff Exclude from diffs
# merge=ours Use "ours" strategy for merge conflicts
#
# =============================================================================
# =============================================================================
# Default Behavior
# =============================================================================
#
# Auto-detect text files and normalize line endings to LF on commit.
# Check out with native line endings based on core.autocrlf setting.
#
# -----------------------------------------------------------------------------
* text=auto
# =============================================================================
# Source Code - Python
# =============================================================================
#
# diff=python enables Python-aware diff output showing function names
# in the diff hunk headers: @@ -10,5 +10,6 @@ def my_function():
#
# -----------------------------------------------------------------------------
*.py text eol=lf diff=python
*.pyx text eol=lf diff=python
*.pyi text eol=lf diff=python
*.pyw text eol=lf diff=python
# =============================================================================
# Source Code - JavaScript / TypeScript
# =============================================================================
*.js text eol=lf
*.jsx text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.mjs text eol=lf
*.cjs text eol=lf
# =============================================================================
# Source Code - Web
# =============================================================================
*.css text eol=lf
*.scss text eol=lf
*.sass text eol=lf
*.less text eol=lf
*.html text eol=lf diff=html
*.htm text eol=lf diff=html
*.jinja text eol=lf
*.jinja2 text eol=lf
*.vue text eol=lf
# =============================================================================
# Configuration Files
# =============================================================================
*.ini text eol=lf
*.cfg text eol=lf
*.conf text eol=lf
*.toml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.json text eol=lf
*.xml text eol=lf
*.csv text eol=lf
*.env text eol=lf
*.env.* text eol=lf
.editorconfig text eol=lf
.gitattributes text eol=lf
.gitignore text eol=lf
.gitmodules text eol=lf
.npmrc text eol=lf
.nvmrc text eol=lf
# =============================================================================
# Documentation
# =============================================================================
*.md text eol=lf diff=markdown
*.markdown text eol=lf diff=markdown
*.rst text eol=lf
*.txt text eol=lf
LICENSE text eol=lf
LICENSE.* text eol=lf
CHANGELOG* text eol=lf
README* text eol=lf
CONTRIBUTING* text eol=lf
# =============================================================================
# Shell Scripts - Unix
# =============================================================================
#
# Unix scripts MUST have LF line endings or they won't execute.
#
# -----------------------------------------------------------------------------
*.sh text eol=lf
*.bash text eol=lf
*.zsh text eol=lf
Makefile text eol=lf
Makefile.* text eol=lf
Procfile text eol=lf
# =============================================================================
# Shell Scripts - Windows
# =============================================================================
#
# Windows batch files need CRLF line endings.
#
# -----------------------------------------------------------------------------
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=lf
# =============================================================================
# Docker & CI/CD
# =============================================================================
Dockerfile text eol=lf
Dockerfile.* text eol=lf
*.dockerfile text eol=lf
docker-compose*.yml text eol=lf
.github/** text eol=lf
.gitlab-ci.yml text eol=lf
.travis.yml text eol=lf
# =============================================================================
# Binary Files - Archives
# =============================================================================
#
# These should never have line ending conversion applied.
#
# -----------------------------------------------------------------------------
*.7z binary
*.gz binary
*.tar binary
*.tgz binary
*.tar.gz binary
*.zip binary
*.bz2 binary
*.xz binary
# =============================================================================
# Binary Files - Python
# =============================================================================
*.pyc binary
*.pyo binary
*.pyd binary
*.whl binary
*.egg binary
# =============================================================================
# Binary Files - Images
# =============================================================================
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.svg binary
*.bmp binary
*.tiff binary
# =============================================================================
# Binary Files - Fonts
# =============================================================================
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
*.otf binary
# =============================================================================
# Binary Files - Other
# =============================================================================
*.pdf binary
*.sqlite3 binary
*.db binary
# =============================================================================
# Git LFS (Large File Storage)
# =============================================================================
#
# Large files that should be stored in Git LFS instead of the repository.
# Configure LFS with: git lfs track "*.psd"
#
# -----------------------------------------------------------------------------
*.json.br filter=lfs diff=lfs merge=lfs -text
# =============================================================================
# GitHub Linguist
# =============================================================================
#
# Controls GitHub's language statistics and syntax highlighting.
# Documentation: https://github.com/github/linguist
#
# linguist-language=X Override detected language
# linguist-generated=true Mark as generated (excluded from stats)
# linguist-vendored=true Mark as vendored (excluded from stats)
# linguist-documentation Mark as documentation
# linguist-detectable=false Exclude from language detection
#
# -----------------------------------------------------------------------------
# Ensure Python is detected correctly
*.py linguist-language=Python
*.pyi linguist-language=Python
# Mark auto-generated files (excluded from language stats)
poetry.lock linguist-generated=true
package-lock.json linguist-generated=true
yarn.lock linguist-generated=true
pnpm-lock.yaml linguist-generated=true
# Mark generated directories
dist/** linguist-generated=true
build/** linguist-generated=true
htmlcov/** linguist-generated=true
site/** linguist-generated=true
# Ensure tests count toward statistics (not vendored)
tst/** linguist-vendored=false
tests/** linguist-vendored=false
# Mark documentation
doc/** linguist-documentation=true
docs/** linguist-documentation=true