Comment définir plusieurs `core.excludesfile` dans` .gitconfig`?

13

Je synchronise ~/.gitconfiget les ~/.gitignorefichiers dans Ubuntu et Mac en utilisant Dropbox et créé un lien symbolique pour cela.

Et excludesfileest déclaré comme ça.

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

Le problème est que le répertoire personnel diffère par os, j'ai donc besoin de plusieurs paramètres pour excludesfile.

Est-il possible de définir plusieurs core.excludesfile?

fer à repasser
la source

Réponses:

17

Vous ne pouvez en avoir qu'un seul core.excludesfile; le dernier paramètre est celui utilisé. Cependant, vous n'avez pas besoin de plusieurs fichiers: git prend ~en charge l'abréviation de votre répertoire personnel.

[core]
    excludesfile = ~/.gitignore

En général, si vous aviez vraiment besoin de plusieurs fichiers d'exclusion, la solution la plus simple serait de générer un seul fichier qui est la concaténation des autres et de le mettre à jour chaque fois que l'un des fichiers change.

Gilles 'SO- arrête d'être méchant'
la source
My .gitconfigest actuellement sous contrôle de version par git. Malheureusement, git se développe ~pour devenir le chemin complet vers $HOMEet se met à jour .gitconfigavec le chemin absolu. Ce comportement est correct, mais il apparaît alors comme un changement non organisé, donc j'utilise git update-index --assume-unchanged .gitconfigpour ignorer l'expansion (avec le reste du fichier).
Dolph
2
@Dolph status-norepro Qu'avez-vous fait pour que ~l'expansion se fasse? Je reçois: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles 'SO- arrête d'être méchant'
1
@Dolph Il s'agit très probablement d'une expansion du shell; après tout, si vous le faites, git config --global core.excludesfile ~/.gitignorece qui est réellement exécuté est git config --global core.excludesfile /path/to/home/.gitignore.
Radon Rosborough
1
@Gilles, notez également que par git-scm , le fichier ~/.config/git/ignores'il existe est globalement ignoré automatiquement, sans configuration globale nécessaire.
Acumenus du