-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitattributes
280 lines (249 loc) · 7.61 KB
/
.gitattributes
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
# Git para manejar los finales de línea (EOL)
#
# https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
#
# El objetivo es poder trabajar en entornos mixtos de Windows, Linux y MacOS
# y permitir que Git gestione los finales de línea en los archivos.
#
# Una vez que hayas creado o ajustado tu archivo .gitattributes, debes realizar
# una re-normalización de los finales de línea de una vez por todas:
#
# 1. Busca y convierte todos los archivos a LF (Unix) en tu repositorio
#
# OJO! Hay que tener mucho cuidado con convertir solo lo necesario, en este
# ejemplo solo convierto lo que está debajo de "src", porque me aseguro de
# que no haya archivos que no deban ser modificados, por ejemplo,
# archivos binarios o archivos de configuración específicos de Windows.
#
# Ir normalizando poco a poco, por ejemplo, primero con los archivos de código
# fuente y luego con los archivos de configuración...
#
# find src -type f -not -path "./.git/*" -exec dos2unix {} \;
# git commit -a -m 'Conversión a dos2unix'
#
# 2. Asegúrate de que cada archivo se guarde como debe !!
#
# git add .gitattributes
# git commit -m 'agregando .gitattributes para unificar los finales de línea'
#
# Cuando se hace el commit de .gitattributes se sobrescribe la configuración
# de `core.autocrlf` en .git/config, de modo que nos aseguramos
# un comportamiento consistente para todos los usuarios.
#
# FYI:
# Aquí tienes una colección de archivos .gitattributes para los lenguajes de
# programación más populares: https://github.com/gitattributes/gitattributes
#
#################################################################################
# atributo # Comportamiento Comportamiento
# atributo # CHECKIN CHECKOUT
#################################################################################
# text # Normalizado a LF # Convertido a EOL nativo
# [text] eol=crlf # Normalizado a LF # Convertido a CRLF
# [text] eol=lf # Normalizado a LF # Convertido a LF
# -text o binary # Sin conversión # Sin conversión
# text=auto # "text" si es texto o de lo contrario, como "binary"
# no especificado # Se usa lo que diga core.autocrlf en .git/config
#
###############################################################################
#
# core.autocrlf # Presente en tu archivo .git/config
# false: igual que binary
# true: igual que eol=crlf Usado en Windows
# input: igual que eol=lf Usado en Linux/MacOS
###############################################################################
# Establecer el comportamiento predeterminado para normalizar automáticamente
# los finales de línea. Manejar los finales de línea automáticamente para los
# archivos detectados como texto y dejar sin tocar los archivos detectados
# como binarios. En caso de que la gente no tenga configurado core.autocrlf.
###############################################################################
* text=auto
###############################################################################
# Los archivos anteriores manejarán todos los archivos NO listados a continuación
#
# Ejemplos:
#
# Declarar explícitamente archivos de texto que siempre deseas normalizar y
# convertir a finales de línea nativos al hacer checkout.
# *.c text
# *.h text
#
# Declarar archivos que siempre tendrán finales de línea CRLF al hacer checkout.
# *.sln text eol=crlf
#
# Git siempre convertirá los finales de línea a LF al hacer checkout. Debes usar
# esto para archivos que deben mantener finales de línea LF, incluso en Windows.
# *.md text eol=lf
# *.c text eol=lf
#
# Denotar todos los archivos que son verdaderamente binarios y no deben ser modificados.
# *.png binary
# *.jpg binary
###############################################################################
# Estos archivos son texto y deben ser normalizados (Convertir crlf => lf)
*.gitattributes text
.gitignore text
# Archivos que utilizo para hacer el unit testing, no cambiar nada !!
*.test binary
# Docker
Dockerfile text
#
# Habilitar resaltado de sintaxis para archivos con extensiones `.gitattributes`.
#
*.gitattributes linguist-language=gitattributes
*.gitattributes linguist-detectable=true
*.gitattributes linguist-documentation=false
# Archivos de configuración de Visual Studio
*.csproj text merge=union
*.sln text merge=union eol=crlf
*.SLN text merge=union eol=crlf
# Archivos de word
*.docx diff=astextplain
*.DOCX diff=astextplain
# las rutas absolutas son válidas, al igual que los patrones glob
# /**/postinst* text eol=lf
# las rutas que no comienzan con / se tratan relativas a la carpeta .gitattributes
# relative/path/*.txt text eol=lf
# Fuentes
*.c text diff=cpp
*.cc text diff=cpp
*.cxx text diff=cpp
*.cpp text diff=cpp
*.cpi text diff=cpp
*.c++ text diff=cpp
*.hpp text diff=cpp
*.h text diff=cpp
*.h++ text diff=cpp
*.hh text diff=cpp
*.cs text diff=csharp
*.java text diff=java
*.js text
# HTML
*.html text diff=html
*.css text
*.js text
# Archivo de bases de datos
*.sql text
# Archivos de objetos compilados
*.slo binary
*.lo binary
*.o binary
*.obj binary
# Encabezados precompilados
*.gch binary
*.pch binary
# Bibliotecas dinámicas compiladas
*.so binary
*.dylib binary
*.dll binary
# Bibliotecas estáticas compiladas
*.lai binary
*.la binary
*.a binary
*.lib binary
# Ejecutables
*.exe binary
*.out binary
*.app binary
# Documentos
*.md text diff=markdown eol=lf
*.mdx text diff=markdown eol=lf
*.tex text diff=tex eol=lf
*.adoc text eol=lf
*.textile text eol=lf
*.mustache text eol=lf
*.csv text eol=lf
*.tab text eol=lf
*.tsv text eol=lf
*.txt text eol=lf
# Gráficos
*.svg text eol=lf
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
*.eps binary
# Scripts
*.bash text eol=lf
*.fish text eol=lf
*.ksh text eol=lf
*.sh text eol=lf
*.zsh text eol=lf
# Windows
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.BAT text eol=crlf
*.CMD text eol=crlf
*.PS1 text eol=crlf
# Ficheros de configuración
*.conf text eol=lf
# Serialización
*.json text eol=lf
*.toml text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
# Archivos
*.7z binary
*.bz binary
*.bz2 binary
*.bzip2 binary
*.gz binary
*.lz binary
*.lzma binary
*.rar binary
*.tar binary
*.taz binary
*.tbz binary
*.tbz2 binary
*.tgz binary
*.tlz binary
*.txz binary
*.xz binary
*.Z binary
*.zip binary
*.zst binary
*.bin binary
*.jar binary
# Ficheros de text en los que debo preservar el EOL
*.patch -text
# Go
# ============
*.go text diff=golang eol=lf
# Python
# ============
*.pxd text diff=python
*.py text diff=python
*.py3 text diff=python
*.pyw text diff=python
*.pyx text diff=python
*.pyz text diff=python
*.pyi text diff=python
# Binarios
# ============
*.db binary
*.p binary
*.pkl binary
*.pickle binary
*.pyc binary export-ignore
*.pyo binary export-ignore
*.pyd binary
# Jupyter notebook
*.ipynb text eol=lf
# Documentos comunes
*.bibtex text diff=bibtex
*.doc binary
*.DOC binary
*.docx binary
*.DOCX binary
*.dot binary
*.DOT binary
*.pdf binary
*.PDF binary
*.rtf binary
*.RTF binary
*.epub binary