V.C.S. : Version Control System
Si vous êtes un dessinateur ou un développeur web, et que vous voulez conserver toutes les versions d'une image ou d'une mise en page, un système de gestion de version est un outil utile.
Il vous permet de ramener un fichier à un état précédent, de ramener le projet complet à un état précédent, de visualiser les changements au cours du temps, de voir qui a modifié quelque chose qui pourrait causer un problème, qui a introduit un problème et quand, et plus encore. Utiliser un VCS signifie aussi généralement que si vous vous trompez ou que vous perdez des fichiers, vous pouvez facilement revenir à un état stable. De plus, vous obtenez tous ces avantages avec peu de travail additionnel.
Les systèmes de versions locaux
La méthode courante pour la gestion de version est généralement de recopier les fichiers dans un autre répertoire (peut-être avec un nom incluant la date dans le meilleur des cas). Cette méthode est la plus courante parce que c'est la plus simple, mais c'est aussi la moins fiable. Il est facile d'oublier le répertoire dans lequel vous êtes et d'écrire accidentellement dans le mauvais fichier ou d'écraser des fichiers que vous vouliez conserver.
Pour traiter ce problème, les programmeurs ont développé il y a longtemps des VCS locaux qui utilisaient une base de données simple pour conserver les modifications d'un fichier, comme illustrés ci-dessous.
Système de verion distribué (DVCS)
Dans un DVCS (tel que Git, Mercurial, Bazaar ou Darcs), les clients n'extraient plus seulement la dernière version d'un fichier, mais ils dupliquent complètement le dépôt. Ainsi, si le serveur disparaît et si les systèmes collaboraient via ce serveur, n'importe quel dépôt d'un des clients peut être copié sur le serveur pour le restaurer. Chaque extraction devient une sauvegarde complète de toutes les données.
Git, des instantanés, pas des différences
Git fut créé en 2005 par Linus Tornvalds, créateur de Linux, pour remplacer le DVCS BitKeeper qui hébergeait le projet Linux.
Git gère trois états dans lesquels les fichiers peuvent résider : modifié, indexé et validé.
- Modifié (modified) signifie que vous avez modifié le fichier mais qu'il n'a pas encore été validé.
- Indexé (staged) signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu’il fasse partie du prochain instantané du projet.
- Validé (commited) signifie que les données sont stockées en sécurité dans votre base de données locale.
L’utilisation standard de Git se passe comme suit :
- vous modifiez des fichiers dans votre répertoire de travail.
- vous indexez les fichiers modifiés, ce qui ajoute des instantanés de ces fichiers dans la zone d'index.
- vous validez, ce qui a pour effet de basculer les instantanés des fichiers de l'index dans la base de données du répertoire Git.
