Numérique · Compétences informatiques
Git et la gestion de versions
Git est un logiciel de gestion de versions : il enregistre l’historique des modifications d’un projet, permet de revenir en arrière et de travailler à plusieurs sur le même code sans s’écraser.
Mis à jour le 4 min de lecture
Sans outil adapté, un projet se gère par copies successives : site-v2, site-v3-final, site-v3-final-corrigé. Un logiciel de gestion de versions remplace ce bricolage : il garde la trace de chaque changement, de son auteur et de sa raison, et permet de fusionner le travail de plusieurs personnes. Git, créé en avril 2005 par Linus Torvalds pour développer le noyau Linux, est devenu le standard presque universel du développement logiciel. Il sert aussi pour la documentation, les sites web, les données ou l’écriture.
Les notions clés
| Notion | Définition |
|---|---|
| Dépôt (repository) | Dossier du projet suivi par Git, avec tout son historique (dans un sous-dossier caché .git) |
| Commit | Instantané enregistré du projet, avec un message, un auteur, une date et un identifiant unique |
| Zone de préparation (staging area) | Sas où l’on choisit les modifications à inclure dans le prochain commit |
| Branche | Ligne de développement parallèle, pour travailler sur une fonctionnalité sans toucher à la version principale |
| Fusion (merge) | Intégration d’une branche dans une autre |
| Conflit | Deux modifications incompatibles du même passage, que l’humain doit trancher |
| Dépôt distant (remote) | Copie du dépôt sur un serveur, pour sauvegarder et partager |
| Clone | Copie complète d’un dépôt distant sur sa machine |
Git est distribué : chaque copie contient tout l’historique et fonctionne hors ligne. Les outils plus anciens comme Subversion (SVN) étaient centralisés, avec un serveur unique.
Les commandes essentielles
Git s’utilise en ligne de commande ou via une interface graphique (intégrée à la plupart des éditeurs de code).
| Commande | Effet |
|---|---|
git init | Transformer un dossier en dépôt |
git clone <adresse> | Copier un dépôt distant |
git status | Voir les fichiers modifiés |
git add <fichier> | Préparer une modification (git add . : tout) |
git commit -m "message" | Enregistrer un commit |
git log | Afficher l’historique |
git diff | Voir les différences non enregistrées |
git branch <nom> | Créer une branche |
git switch <nom> | Changer de branche (anciennement git checkout) |
git merge <nom> | Fusionner une branche dans la branche courante |
git pull | Récupérer et intégrer les changements du dépôt distant |
git push | Envoyer ses commits vers le dépôt distant |
git restore <fichier> | Annuler les modifications non enregistrées d’un fichier |
git revert <commit> | Annuler un commit en créant un commit inverse |
Première configuration : git config --global user.name "Prénom Nom" et git config --global user.email "adresse".
Un flux de travail typique
git pullpour partir de la dernière version.git switch -c correction-menupour créer une branche de travail.- Modifier les fichiers, tester.
git addpuisgit commit -m "Corrige l'affichage du menu sur mobile".git pushpour envoyer la branche sur le serveur.- Ouvrir une demande de fusion (pull request ou merge request) : un collègue relit, commente, puis la fusionne dans la branche principale (souvent nommée
main).
Git, GitHub, GitLab : quelles différences ?
Git est le logiciel, libre et gratuit, qui tourne sur votre ordinateur. GitHub (lancé en 2008, racheté par Microsoft en 2018), GitLab, Bitbucket, Codeberg ou une instance auto-hébergée sont des plateformes qui hébergent des dépôts distants et ajoutent des services : demandes de fusion, suivi de tickets, intégration continue (tests automatiques), pages web. GitHub héberge une grande partie des projets open source du monde.
Ce qu’il ne faut pas mettre dans Git
- Les secrets : mots de passe, clés d’API, jetons. Une fois poussés sur un dépôt public, ils doivent être considérés comme compromis, même après suppression, car ils restent dans l’historique.
- Les fichiers générés (résultats de compilation, dépendances téléchargées) : on les liste dans un fichier
.gitignore. - Les très gros fichiers binaires (vidéos, jeux de données volumineux) : Git les gère mal ; des extensions comme Git LFS existent pour cela.
Questions fréquentes
Git est-il réservé aux développeurs ?
Non. Il sert à tout projet fait de fichiers texte : documentation, thèses en LaTeX ou Markdown, sites statiques, configurations. Il est moins adapté aux documents Word ou aux images, dont il ne sait pas afficher les différences.
Comment annuler le dernier commit ?
S’il n’a pas été partagé : git reset --soft HEAD~1 annule le commit en gardant les modifications. S’il a déjà été poussé : préférer git revert, qui ne réécrit pas l’historique commun.
Qu’est-ce qu’un conflit de fusion ?
Une situation où deux branches ont modifié les mêmes lignes. Git marque les passages concernés dans le fichier ; il faut choisir la bonne version, enregistrer, puis valider par un commit.