URL: https://linuxfr.org/users/perdu/journaux/gerer-ses-fichiers-de-config-avec-git Title: Gérer ses fichiers de config avec git Authors: Perdu Date: 2015年04月16日T23:09:34+02:00 License: CC By-SA Tags: configfiles, git, prompt, dotfiles et configuration Score: 19 Je continue sur ma [lancée](https://linuxfr.org/users/perdu/journaux/faire-de-la-magie-avec-son-inputrc) des trucs qui _enlarge my productivity_. Aujourd'hui, voyons comment gérer efficacement ses fichiers de config directement avec git. Comment gérez-vous les fichiers de configs répartis sur vos différentes machines ? Les synchronisez-vous de temps en temps à coup de scp, rsync ou unison ? Peut-être utilisez-vous un outil évolué comme vcsh ? Mais savez-vous que si ce dernier est une surcouche à git dédiée à la gestion des fichiers de configuration, git seul peut faire l'affaire ? Bien sûr, tout serait simple si tous les logiciels enregistraient leurs fichiers de configuration dans ~/.config, mais ce n'est pas le cas : beaucoup l'enregistrent directement dans le dossier home. Il va donc falloir versionner tout le dossier home. Oui, c'est sale, j'en vois déjà s'agiter derrière leur clavier ! Mais pas de panique, on va commencer par tout ignorer par défaut : ```bash echo '*'> ~/.gitignore ``` Il faudra donc par la suite ajouter les fichiers avec git add -f. Mais pour commencer, créons notre dépôt, comme un dépôt git normal : ```bash git init --bare ``` Une fois le dépôt créé, on va pouvoir le cloner sur chaque machine concernée. ```bash cd # pour revenir dans son home git init git remote add origin/master # Supprimer/sauvegarder les fichiers potentiellement écrasés avant de pull (.bashrc notamment) git pull origin/master master ``` Avant de pouvoir commencer à envoyer des commits au serveur, il faudra encore exécuter la commande suivante, pour indiquer qu'on veut push sur la branche master du dépôt distant : ```bash git push --set-upstream origin/master master ``` Et, si ce n'est pas déjà défini dans votre .gitconfig, pensez à définir votre nom ainsi que votre adresse mail : ```bash git config --global user.email "toto@perdu.com" git config --global user.name "Erika Mustermann" ``` Et voilà, c'est tout ! Vous pouvez à présent gérer vos fichiers de config comme n'importe quel dépôt git, à l'exception près qu'il faut ajouter les fichiers avec git add -f. Très pratique pour effectuer fréquemment des changements et les diffuser sur ses différentes machines ! Et le versionnage vous permettra de retrouver rapidement une modification effectuée, annuler une config qui-casse-tout... Faites bien attention de n'ajouter que les fichiers de configuration modifiés uniquement par l'utilisateur, et non pas les différents fichiers de cache (n'ajoutez pas votre .emacs.d/ en entier, par exemple). On regrettera d'ailleurs que certains logiciels tels thunderbird/icedove placent les configs utilisateurs et différentes options modifiées en permanence (dernier dossier ouvert, etc.) dans le même fichier, ce qui empêche un versionnage pratique. Voilà, bonne gestion de vos dizaines de machines !

AltStyle によって変換されたページ (->オリジナル) /