# Sauvegarder un dossier avec git

**URL:** <https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 9:14 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928 "2016-02-20T21:14:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:14 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/1 "2016-02-20T21:14:09Z")

</div>

**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 :

```nohighlight
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 :

```nohighlight
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 ~ :

```nohighlight
cat /etc/.gitignore

```

```nohighlight
*~

```

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 » :

```nohighlight
git add .

```

La seconde consiste à ajouter à la main chaque dossiers et fichiers que l’on veut sauvegarder :

```nohighlight
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 :

```nohighlight
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 :

```nohighlight
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 «&nbsp;git log&nbsp;».

**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 :

```nohighlight
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 :

```nohighlight
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

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 9:14 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/2 "2016-02-20T21:14:28Z")

</div>

Hello  
voila un outils que je ne connaît pas 🙂  
sinon le lien ici te dit rien ?  
[http://forum.debian-fr.org/viewtopic.php?f=8&t=10696](http://forum.debian-fr.org/viewtopic.php?f=8&t=10696)

sinon il est évident que c est pour sauvegarder que les fichier et pas une machine m’enfin je pense l’intégrer a mon tuto si tu es d’accords ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:14 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/3 "2016-02-20T21:14:31Z")

</div>

J’ai créé un nouveau sujet parce que je trouvait ça plus difficile pour moi pour retrouver la chose facilement. Mais n’hésite pas à l’intégrer à tout ce que tu veut ou à le modifier. d’ailleurs si quelqu’un a des remarques.

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 20, 2016, 9:18 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/4 "2016-02-20T21:18:54Z")

</div>

> [@MisterFreez](#):
>
> …  
> 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 ~ :  
> avec git.

Qu’en penses tu??

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 9:19 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/5 "2016-02-20T21:19:20Z")

</div>

C’est fait ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 9:23 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/6 "2016-02-20T21:23:57Z")

</div>

J’en étais pas tout à fait sûr donc j’ai cherché.

Alors pour la précision git est un outil bien particulier contrairement à ces homologues la gestion des informations lors des commits est complètement différente pour la plupart ils utilisent le diff entre fichiers git non.

> [@](#):
>
> Different from SVN
> 
> It is important to note that this is very different from most SCM systems that you may be familiar with. Subversion, CVS, Perforce, Mercurial and the like all use Delta Storage systems - they store the differences between one commit and the next. Git does not do this - it stores a snapshot of what all the files in your project look like in this tree structure each time you commit. This is a very important concept to understand when using Git.

Ainsi git peut être utiliser pour sauvegarder aussi des fichiers binaires. Cela n’alourdira pas plus le dépôt. Il peut être aussi pertinent de sauvegarder de cette manière ses fichiers de conf (/etc comme le précisait MisterFreez mais aussi) .bashrc répertoire caché dans /home son /var/www pour les projets web (si c’est le path d’accès au web) bref amusé vous bien 😉

---

<div class="post-metadata">

**Author:** ![benjisan](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/34f0e0/32.png) [@benjisan](https://www.debian-fr.org/u/benjisan)\
**Post date:** [Janvier 22, 2021, 10:21 UTC](https://www.debian-fr.org/t/sauvegarder-un-dossier-avec-git/23928/7 "2021-01-22T22:21:15Z")

</div>

J’ai écrit un tutoriel pour bien débuter avec l’utilisation de git en ligne de commande.

> **[GitHub - Yglsan/git-howto-easy-12steps-En-Fr: how to upload a git file on github in 12 easy...](https://github.com/Yglsan/git-howto-easy-12steps-En-Fr)**
>
> how to upload a git file on github in 12 easy steps (English and French versions)

C’est en Français et en Anglais.
