¿Cómo configurar múltiples `core.excludesfile` en` .gitconfig`?

13

Estoy sincronizando ~/.gitconfigy ~/.gitignorearchivos en ubuntu y Mac usando dropbox y he creado un enlace simbólico para ello.

Y excludesfilese declara así.

[core]
        editor = /usr/bin/vim
        excludesfile = /Users/username/.gitignore

El problema es que el directorio de inicio difiere según el sistema operativo, por lo tanto, necesito una configuración múltiple para excludesfile.

¿Es posible definir múltiples core.excludesfile?

hierro y
fuente

Respuestas:

17

Solo puedes tener uno core.excludesfile; la última configuración es la que se usa. Sin embargo, no necesita varios archivos: git admite ~como abreviatura su directorio de inicio.

[core]
    excludesfile = ~/.gitignore

En general, si realmente necesita tener varios archivos de exclusión, la solución más simple sería generar un solo archivo que sea la concatenación de los demás y actualizarlo cada vez que cambie uno de los archivos.

Gilles 'SO- deja de ser malvado'
fuente
My .gitconfigestá realmente bajo control de versiones por git. Desafortunadamente, git se expande ~para ser la ruta completa $HOMEy se actualiza .gitconfigcon la ruta absoluta. Ese comportamiento está bien, pero luego aparece como un cambio no organizado, por lo git update-index --assume-unchanged .gitconfigque solía ignorar la expansión (junto con el resto del archivo).
Dolph
2
@Dolph status-norepro ¿Qué hiciste para ~que se expandiera? Obtengo: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles 'SO- deja de ser malvado'
1
@Dolph Probablemente fue una expansión de shell; después de todo, si lo hace, git config --global core.excludesfile ~/.gitignoreentonces lo que realmente se ejecuta es git config --global core.excludesfile /path/to/home/.gitignore.
Radon Rosborough
1
@Gilles, tenga en cuenta también que por git-scm , el archivo, ~/.config/git/ignoresi existe, se ignora automáticamente de forma global, sin necesidad de una configuración global.
Acumenus