Aggiornamento 2012:
Vedi la risposta di Mike Morearty :
include
È possibile includere un file di configurazione da un altro impostando la include.path
variabile speciale sul nome del file da includere.
Il file incluso viene espanso immediatamente, come se il suo contenuto fosse stato trovato nella posizione della direttiva include.
Se il valore della include.path
variabile è un percorso relativo, il percorso viene considerato relativo al file di configurazione in cui è stata trovata la direttiva include.
Il valore di include.path
è soggetto all'espansione tilde: ~/
viene espanso al valore di $HOME
e ~user/
nella home directory dell'utente specificato.
Non la penso così.
Preferirei inserire questa impostazione nel ~/.gitconfig
file
File di configurazione specifico dell'utente. Chiamato anche file di configurazione "globale".
In questo modo, completa il file specifico del progetto .gitconfig, senza essere pubblicato quando viene inviato a GitHub. Vedi anche questa risposta SO per ulteriori informazioni sul file di configurazione globale.
Git ha 3 file di configurazione .
bjeanes aggiunge nei commenti:
sembra che tutti abbiano perso il punto di questa domanda.
David vuole, ovviamente, a spingere una repo di tutti i suoi file punto ( bashrc
, gemrc
, etc.) tra cui il suo .gitconfig
, così da poter avere tutti i suoi impostazioni di tutte le sue macchine.
Un modo per spingere parti di un .gitconfig
file includendo e ignorando le voci private è quello che lui (e io, per quella materia) sta cercando.
Un modo possibile sarebbe quello di utilizzare un driver di filtro smudge / clean per decrittografare / crittografare un file con informazioni riservate private (vedere questo thread ), al fine di completare un file locale come ~ / .gitconfig con le parti decodificate che sono rilevanti per quello file.
In questo modo puoi avere un repository Git con tutti i tuoi file dot, oltre a un file con informazioni crittografate pensato per essere decrittografato e aggiunto a detti file dot.
In .gitattributes
(o .git/info/a..
) utilizzare:
myPrivateInfosFile filter=gpg diff=gpg
Nel file .config del repository:
[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt
(una soluzione basata su GPG significa, ovviamente, che hai comunicato le tue chiavi pubbliche / private con un altro mezzo sul computer di destinazione in cui desideri ripristinare tutti i tuoi file dot clonando questo repository speciale)
In realtà, nel tuo caso, lo script smudge deve essere completato come deve, dopo aver decrittografato quel file, andare avanti e aggiungere parti pertinenti al tuo ~/.gitconfig
file globale (a meno che non sovrascrivi il file di configurazione globale con un'altra posizione ) o altri file di punti per quello importa.
https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread
(gli inconvenienti di gpg sono discussi ulteriormente in questo thread ) (questo è diverso dall'avere un repository Git completamente codificato, come discusso qui )