Configurar un gitignore global (core.excludesFile)
Explica cómo configurar core.excludesFile para ignorar en todos los repositorios los archivos que genera tu entorno personal, como .DS_Store de macOS o los archivos del editor, y cuál es la ruta predeterminada.
Archivos como .DS_Store, Thumbs.db, .idea/workspace.xml o *.swp no los genera el proyecto, sino tu equipo y tu editor. En lugar de repetir estas reglas en cada repositorio, el gitignore global es el lugar donde se escriben una sola vez.
Ruta predeterminada
Aunque no configures nada, git lee el siguiente archivo como lista global de ignorados.
$XDG_CONFIG_HOME/git/ignore- Si
XDG_CONFIG_HOMEestá vacío o no está definido,$HOME/.config/git/ignore
Es decir, en la mayoría de los entornos macOS y Linux basta con crear el archivo ~/.config/git/ignore.
mkdir -p ~/.config/git
printf '.DS_Store\n*.swp\n.idea/workspace.xml\n' >> ~/.config/git/ignore
Si quieres usar otro archivo: core.excludesFile
Para usar un archivo en la ruta que quieras, configura core.excludesFile. Si defines este valor, se lee ese archivo en lugar de la ruta predeterminada.
# macOS / Linux
git config --global core.excludesFile ~/.gitignore_global
# Windows (PowerShell)
git config --global core.excludesFile "$env:USERPROFILE\.gitignore_global"
Comprueba que el ajuste se aplicó con el siguiente comando.
git config --global --get core.excludesFile
Si no se muestra ningún valor, no está configurado, y en ese caso se usa la ruta predeterminada de arriba.
Qué poner en el global
Lo adecuado para el global son los archivos personales que aparecen igual trabajes en el proyecto que trabajes.
| Tipo | Ejemplo | Plantilla recomendada |
|---|---|---|
| Sistema operativo | .DS_Store, ._*, Thumbs.db, desktop.ini, *~ | macOS, Windows, Linux |
| Estado personal de editor e IDE | *.swp, .idea/workspace.xml, archivos personales de .vscode/* | Vim, JetBrains, VisualStudioCode |
| Herramientas personales | .envrc (direnv), carpeta de notas personales | Escribirlo a mano |
Si en el generador eliges solo plantillas como macOS o JetBrains y copias el resultado, puedes usarlo directamente como contenido del archivo global.
En cambio, los resultados de compilación, las carpetas de dependencias y los archivos secretos van en el .gitignore del proyecto, no en el global. Estas reglas deben aplicarse a todas las personas que obtienen el repositorio.
Límites de ponerlo en el global
El gitignore global se aplica solo en tu equipo. Si un compañero no ha hecho la configuración global, su .DS_Store todavía puede acabar confirmado. Por eso el repositorio de plantillas de GitHub también explica ambas opciones: poner las plantillas Global en el global o combinarlas con las plantillas del proyecto.
En la práctica, este criterio suele funcionar bien.
- En proyectos personales, o si puedes indicar la configuración global como norma del equipo, ponlo en el global.
- Si no puedes controlar a los colaboradores, como en código abierto, incluye al menos
.DS_StoreyThumbs.dbtambién en el .gitignore del proyecto.
Precedencia
El archivo global tiene la menor precedencia de las cuatro fuentes de reglas. Aunque el global ignore *.log, si el .gitignore del proyecto tiene !keep.log, gana el proyecto. Si no tienes claro qué regla se aplicó, ejecuta git check-ignore -v <ruta>. Si al principio de la salida aparece la ruta del archivo global, lo decidió una regla global.