Préambule
git est avant tout un outils conçut pour gérer du code source et donc des fichiers textes. Je vous recommande donc de l’utiliser uniquement pour ce genre de fichiers (fichiers de configuration et scripts).
L’avantage de gestionnaire de version pour ce type de tâche, c’est qu’il vous permettra de garder un historique des fichiers. Ainsi vous n’aurais jamais perdu une ancienne version. L’avantage d’un gestionnaire de version décentralisé (comme git, svk, mercurial, bazzar,…), c’est que si vous utilisez plusieurs ordinateurs avec la même configuration vous pourrais effectuer vos sauvegardes de n’importe la quelle de ses machines sans problème.
Il est a noter pour les administrateurs qui gèrent un parc de machines identique qu’il est très intéressant d’utiliser un gestionnaire de version avec un serveur qui redistribueras les fichiers de configuration à toutes les machines du parc. La mise en place d’une telle solution n’est pas décrite dans ce document.
Installation
Tout d’abord il faut installer git :
sudo aptitude install git-core
Utilisation
Création de commit
Admettons que l’on veut sauvegarder le dossier /etc. Nous allons commencer par créer un dépôt git dans /etc :
cd /etc && git init
Ensuite on va créer un fichier .gitignore à la racine du dépôt qui va servir à filtrer les fichiers que l’on ne souhaite pas sauvegarder par exemple les fichiers finissants par ~ :
cat /etc/.gitignore
*~
Ensuite on crée ajout les fichiers au dépôt. Deux méthode existent :
La simple qui ajoute tout ce qui n’est pas filtré par le « .gitignore » :
git add .
La seconde consiste à ajouter à la main chaque dossiers et fichiers que l’on veut sauvegarder :
git add init.d apt/source.list
Une fois que l’on a ajouté tout ce que l’on veut, on vérifie les fichiers ajoutés grâce à la commande :
git status
Elle vous indique les fichiers ajoutés, les fichiers pas ajouté (en omettant ce qui sont ignorés par le fichier .gitignore) et les fichiers modifiés.
On va maintenant créer notre premier commit de la manière la plus simple qui soit :
git commit -m "Message que vous souhaitez"
(l’option -m peut être omise c’est alors votre éditeur de texte qui se lance, si vous n’enregistrez pas de message de commit, git ne créeras pas le commit)
Vous pouvez faire d’autres commit. Il ne faut pas oublier de faire un « add » sur les fichiers nouvellement créé et surtout utilisez l’option -a lors des commit pour inclure dans le commit les fichiers modifiés (sinon il faut utiliser add sur chacun d’eux).
On peut maintenant lister les commits avec « git log ».
Copie sur le média
Maintenant il faut envoyer ça vers le média de sauvegarde que vous souhaitez (réinscriptible quand même). Pour pour cela on utilise la commande ci-dessous :
git clone /etc /media/BACKUP/etc-backup # etc-backup ne doit pas exister
Maintenant un simple ls dans le dossier de destination vous montreras que tout c’est bien passé.
Pour mettre à jour la sauvegarde, on se place dans le dossier la contenant et on utilise la commande :
git pull /etc master
Et voila vous êtes maintenant capable de faire un backup de n’importe quel dossier de votre ordinateur avec git.
[Edit = 8/01/10] : petites corrections orthographiques