2.9 KiB
Gestione della $HOME
direttamente come repository
E' un metodo che consiste nel fare in modo che il contenuto della $HOME sia gestito direttamente come un repository Git.
La forma più comune con cui questo metodo viene messo in pratica consiste
nella creazione di un repository Git di tipo "bare" nella $HOME
e poi
utilizzarlo con le opzioni standard di Git.
Git consente infatti di indicare, tramite appositi parametri, sia la directory con i files da tracciare, sia la directory con i suoi dati.
Per evitare di ripetere ogni volta questi parametri e anche per evitare di sbagliarli si crea comunemente un alias.
Il metodo di lavoro
Creazione del repository "bare"
Il repository può essere creato da zero o clonato da un server remoto.
Per convenzione si utilizzerà un repository che localmente si chiama
.dotfiles
. Si assume che i comandi siano dati avendo la $HOME come
directory corrente.
Se si vuole creare un nuovo repository il comando da dare è:
git init --bare .dotfiles
Se invece si vuole clonare un repository remoto il comando da dare è:
git clone --bare <url>
dove con <url>
si indica l'indirizzo da
cui clonare con l'accesso http/https o con l'accesso ssh.
Definizione dell'alias
Per rendere più semplice l'operatività si utilizza un alias. Si può scegliere un qualsiasi nome per l'alias.
L'alias va reso disponibile ad ogni login, qui si aggiunge al
.bashrc
. Per aggiungerlo si può modificare il file con un editor
o accodarlo con i comandi di shell.
Per aggiungere l'alias accodandolo: ~echo "alias dotfiles='usr/bin/git –git-dir=$HOME.dotfiles –work-tree=$HOME'" >> $HOME/.bashrc
Configurazione del repository
Per evitare di vedere sempre come "non gestiti" tutti i files di cui non
ci importa e che non devono andare nel repository occorre configurare Git
in modo che non ce li mostri:
dotfiles config --local status.showUntrackedFiles no
Infine, solo Se si è creato un nuovo repository e si intende appoggiare
il tutto ad un server remoto occorre configurare il "remote":
dotfiles remote add <url>
Operatività:
A questo punto si usano i normali comandi Git avendo l'unica accortezza
di usare dotfiles
invece di git
Alcuni esempi
Aggiungere un nuovo file all'area di stage
dotfiles add /path/to/file
Commit
dotfiles commit
Push
dotfiles pull
Caveats
Non è tutto oro quello che luccica.
Questo metodo rende complessa la gestione di files di configurazione di macchie diverse. Si può ricorrere all'uso delle branch per identificare la macchina, ma questo funziona soltanto se il numero di macchine è limitato e si lavora con molta diligenza.
Non è semplice avere dei diff tra le versioni proprio perché si usa un repository bare.
dotfiles reset --hard
potrebbe causare un infarto.
"Varie ed eventuali".