Un dossier nommé « projet_final ». Puis « projet_final_v2 ». Puis « projet_final_v2_vraiment_final ». Puis « projet_final_v2_vraiment_final_CORRIGE ». Ça vous parle ? A moi oui ! A partir du moment où on fait cela, c’est qu’on ressent le besoin de versionner son travail.
Qu’est-ce que le versionning ?
Le versionning c’est le fait de garder une trace de l’évolution d’un projet dans le temps. Il s’agit de pouvoir répondre à des questions simples mais essentielles : à quoi ressemblait ce fichier la semaine dernière ? Qu’est-ce qui a changé entre deux versions ? Qui a modifié cette ligne, et pourquoi ? Comment revenir à un état qui fonctionnait avant que je ne casse tout ?
On peut versionner « à la main », en dupliquant des dossiers ou en renommant des fichiers avec des dates ou des numéros. Mais cette méthode peut devenir très vite ingérable : les dossiers s’accumulent, on ne sait plus quelle version est la bonne et il est impossible de savoir précisément ce qui a changé entre deux copies, sans les comparer fichier par fichier.
C’est pour résoudre ce problème qu’existent les systèmes de contrôle de version, ou VCS (Version Control System) : des outils conçus spécifiquement pour suivre l’historique d’un projet de façon fiable, précise et automatisée. Git est aujourd’hui le plus utilisé d’entre eux. Git est celui dont j’ai surtout entendu parler et celui que j’utilise. Mais il existe aussi SVN (ou Subversion) qui est utilisé dans l’écosystème WordPress.
Qu’est-ce que Git ?
Git est un système de contrôle de version décentralisé, créé en 2005 par Linus Torvalds, le créateur de Linux. Git permet d’enregistrer l’état d’un projet à différents moments, sous forme « d’instantanés » qu’on appelle des commits, et qui permet de naviguer entre ces instantanés.
Voici quelques notions qui permettent de comprendre comment Git organise cela.
- Le dépôt, qu’on appelle aussi repository, ou encore « repo ») est l’endroit où Git stocke tout l’historique du projet : chaque commit, chaque modification, chaque message associé. Un commit est une photographie de l’état du projet à un instant T, accompagnée d’un message qui explique ce qui a changé.
- Une branche est une ligne de développement indépendante, détachée de la branche principale (qu’on appelle branche master) : elle permet de travailler sur une fonctionnalité ou une correction sans toucher à la version principale du projet, puis de fusionner ce travail une fois qu’il est prêt. Cela permet ainsi de tester quelque chose sans toucher au code principal.
Quand on parle de Git on doit aussi parler de GitHub, GitLab ou Bitbucket. Git est l’outil qui gère les versions sur votre machine, en local. GitHub, GitLab et BitBucket sont des plateformes en ligne qui hébergent des dépôts Git et qui facilitent le travail en équipe. Elles ajoutent des fonctionnalités comme les demandes de fusion (pull requests) ou le suivi de bugs.
Dans quels métiers utilise-t-on le versionning ?
Le versionning avec Git est devenu un réflexe standard dans les métiers qui produisent du code ou des fichiers texte amenés à évoluer dans le temps. Les dév. web, qu’ils ou elles travaillent côté front-end ou back-end, sont les premières personnes concernées. Tout comme celles qui développent des applications mobiles ou desktop et, plus largement, les ingénieurs logiciels de tous horizons.
Mais le versionning est aussi utilisé par les data scientists mais aussi par les ingénieurs DevOps en particulier pour gérer les déploiements.
La documentation technique peut être également versionnée avec Git, dès lors qu’elle est écrite sous forme de fichiers texte Markdown par exemple, plutôt que dans un traitement de texte classique.
Ces différents métiers ont un point commun : dès qu’un travail se compose de fichiers texte qui changent souvent, sont relus, corrigés, ou produits à plusieurs mains, Git apporte une réponse adaptée.
Pourquoi versionner son code ?
Les bénéfices du versionning avec Git sont nombreux.
D’abord, Git offre un historique complet et traçable de chaque modification. Chaque commit garde une trace de ce qui a changé, quand, et si le message est bien écrit, pourquoi. Ensuite, il permet de revenir en arrière en cas de bug ou d’erreur : plutôt que de chercher désespérément ce qui a cassé le projet, on peut comparer les versions successives et identifier précisément le commit fautif.
Git facilite également le travail en équipe. Plusieurs personnes peuvent travailler sur le même projet en parallèle, chacune sur sa propre branche, avant que leurs contributions ne soient fusionnées. Git gère lui-même la fusion dans la majorité des cas, et signale les conflits lorsque deux modifications se chevauchent, pour qu’on puisse les résoudre à la main.
Le système de branches permet aussi d’expérimenter sans prendre de risque : on peut tester une idée, une nouvelle fonctionnalité, sans toucher au code principal qui fonctionne. Si l’expérimentation échoue, il suffit d’abandonner la branche, sans aucune conséquence sur le reste du projet.
Enfin, dès lors que le dépôt est aussi hébergé en ligne, Git offre une forme de sauvegarde et de redondance : le code n’existe plus uniquement sur une seule machine, ce qui protège contre une panne de disque dur, un vol d’ordinateur ou une simple fausse manipulation.
Pourquoi versionner même quand on travaille seul
On associe souvent Git au travail en équipe, au point d’en conclure, à tort, qu’il ne sert à rien quand on développe seul. C’est une erreur : les bénéfices du versionning restent valables sur un projet solo. Je travaille la plupart du temps seule et, depuis plusieurs années, je versionne mon travail.
Pour moi c’est un filet de sécurité. Personne n’est à l’abri d’une modification malheureuse, une suppression accidentelle : grâce à Git, il est toujours possible de revenir à un état antérieur stable, sans avoir à tout reconstruire de mémoire. Cela permet aussi de savoir où on en était quand on a fermé l’ordinateur, la veille.
Le versionning sert aussi à documenter ses propres choix. Un message de commit bien écrit explique, pourquoi telle ou telle décision a été prise. Six mois plus tard, en retombant sur une portion de code qu’on avait oubliée, l’historique des commits permet de reconstituer le raisonnement d’origine, ce que le code seul ne dit pas toujours.
Les branches sont utiles en solo aussi : elles permettent de travailler sur plusieurs pistes en parallèle sans tout mélanger. Personnellement je ne les utilise pas souvent.
Si le dépôt est poussé sur une plateforme comme GitHub, BitBucket ou GitLab il bénéficie en outre d’une sauvegarde à distance : on retrouve son code en cas de panne de disque, un vol d’ordinateur, ou toute autre catastrophe locale.
Enfin, versionner dès le début, c’est préparer l’avenir. Un projet solo peut devenir collaboratif à un moment ou un autre : on cherche de l’aide, on embauche un développeur, on transmet le projet à quelqu’un d’autre. Et même sans cela, on redevient soi-même, six mois plus tard. Un historique Git propre est un cadeau qu’on se fait à soi-même dans le futur.
Quels outils utiliser pour versionner avec Git
Le terminal
La ligne de commande est la façon la plus directe d’utiliser Git. Elle demande un temps d’apprentissage, mais elle offre un contrôle total sur ce qu’on fait, et elle aide à vraiment comprendre la logique de Git. En utilisant une interface où on clique sur des boutons, on peut ne pas comprendre ce qu’on fait exactement.
Voici les commandes de base à connaître pour démarrer :
- git init initialise un nouveau dépôt Git dans le dossier courant. C’est la toute première commande à lancer pour commencer à versionner un projet.
- git clone <url> récupère une copie complète d’un dépôt existant.
- git status affiche l’état actuel du dépôt : quels fichiers ont été modifiés, lesquels sont prêts à être enregistrés, lesquels ne sont pas suivis par Git.
- git add <fichier> ajoute un fichier modifié à la « zone de préparation » (staging), c’est-à-dire à la liste des changements qui seront inclus dans le prochain commit. « git add .« ajoute tous les fichiers modifiés d’un coup.
- git commit ‑m + votre message entre guillemets enregistre un instantané des changements ajoutés, accompagné d’un message décrivant ce qui a été fait.
- git push envoie les commits enregistrés en local vers le dépôt distant, pour les sauvegarder en ligne.
- git pull récupère et intègre les derniers changements présents sur le dépôt distant vers la copie locale.
- git log affiche l’historique des commits : qui a commité quoi, quand, avec quel message.
Ces huit commandes suffisent largement pour couvrir l’usage quotidien de Git sur un projet, seul ou en petite équipe.
Vous pouvez retrouver toutes les commandes sur le site officiel Git
Les interfaces graphiques
Vous préfèrerez peut-être une approche plus visuelle, pour cela il existe des interfaces graphiques dédiées à Git. Sourcetree par exemple est gratuit : l’outil affiche l’arbre des branches sous forme de graphique et permet de visualiser les différences entre deux versions d’un fichier. Il rend les opérations de fusion ou de résolution de conflits plus lisibles qu’en ligne de commande.
D’autres outils existent dans le même esprit : GitHub Desktop, plus minimaliste et pensé pour les débutants, GitKraken, plus riche visuellement, ou encore l’intégration Git directement présente dans des éditeurs comme Visual Studio Code, ce qui est pratique parce qu’elle évite de changer d’application.
Une bonne pratique serait d’apprendre les bases en ligne de commande pour bien comprendre ce que fait réellement Git, puis à utiliser un outil graphique comme Sourcetree au quotidien si vous préférez le confort visuel. Un graphique est souvent plus parlant qu’une série de lignes de texte.
J’ai appris à utiliser Git sur le site Grafikart.
Bien nommer ses commits
Un historique de commits n’a de valeur que s’il est lisible. Un dépôt Git rempli de messages comme « fix » ou « update » ne raconte rien : il faut rouvrir chaque commit un par un pour comprendre ce qui a réellement changé. À l’inverse, un historique bien écrit fonctionne comme une documentation vivante du projet, particulièrement utile en solo pour se relire des mois plus tard.
La règle la plus simple à adopter consiste à rédiger chaque message de commit comme une instruction, à l’impératif, suivie d’une description courte et précise de ce qui a été fait. On écrit par exemple « Corrige l’affichage du header sur mobile » plutôt que « fix header », ou « Ajoute la validation du formulaire de contact » plutôt que « update ». L’idée est qu’en lisant le message seul, sans avoir à ouvrir le code, on comprenne immédiatement ce que ce commit a changé. Mais ce n’est pas forcément évident !
Ainsi, le versionning n’est pas réservé aux grosses équipes de développement ni aux projets complexes. Que l’on travaille sur un site vitrine, une application personnelle ou un projet professionnel de grande ampleur, Git offre un filet de sécurité et un historique clair.
La meilleure façon de s’y mettre reste la plus simple : initialiser un dépôt Git dès le prochain projet, même le plus modeste, avec un git init et un premier commit. Le reste s’apprend en pratiquant, commit après commit.













