Come impostare più `core.excludesfile` in` .gitconfig`?


13

Sto sincronizzando ~/.gitconfige ~/.gitignorefile in Ubuntu e Mac usando Dropbox e creato un collegamento simbolico per esso.

Ed excludesfileè dichiarato così.

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

Il problema è che la directory home differisce da os, quindi ho bisogno di più impostazioni per exclusefile.

È possibile definire più core.excludesfile?

Risposte:


17

Puoi averne solo uno core.excludesfile; l'ultima impostazione è quella utilizzata. Tuttavia, non hai bisogno di più file: git supporta ~come abbreviazione per la tua home directory.

[core]
    excludesfile = ~/.gitignore

In generale, se fosse davvero necessario disporre di più file di esclusioni, la soluzione più semplice sarebbe quella di generare un singolo file che è la concatenazione degli altri e aggiornarlo ogni volta che uno dei file cambia.


My .gitconfigè in realtà sotto il controllo della versione di Git. Sfortunatamente, git si espande ~per essere il percorso completo $HOMEe aggiorna .gitconfigse stesso con il percorso assoluto. Questo comportamento va bene, ma poi si presenta come una modifica non messa in scena, quindi uso git update-index --assume-unchanged .gitconfigper ignorare l'espansione (insieme al resto del file).
Dolph,

2
@Dolph status-norepro Che cosa hai fatto per causare ~l'espansione? Ottengo: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles 'SO- smetti di essere malvagio'

1
@Dolph Molto probabilmente questa è stata un'espansione della shell; dopo tutto, se lo fai, git config --global core.excludesfile ~/.gitignoreciò che viene effettivamente eseguito è git config --global core.excludesfile /path/to/home/.gitignore.
Radon Rosborough,

1
@Gilles, nota anche che per git-scm , il file ~/.config/git/ignorese esiste viene automaticamente ignorato a livello globale, senza che sia necessaria una configurazione globale.
Acumenus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.