Aller au contenu
connaissance.org

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

NotionDéfinition
Dépôt (repository)Dossier du projet suivi par Git, avec tout son historique (dans un sous-dossier caché .git)
CommitInstantané 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
BrancheLigne 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
ConflitDeux 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
CloneCopie 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).

CommandeEffet
git initTransformer un dossier en dépôt
git clone <adresse>Copier un dépôt distant
git statusVoir les fichiers modifiés
git add <fichier>Préparer une modification (git add . : tout)
git commit -m "message"Enregistrer un commit
git logAfficher l’historique
git diffVoir 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 pullRécupérer et intégrer les changements du dépôt distant
git pushEnvoyer 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

  1. git pull pour partir de la dernière version.
  2. git switch -c correction-menu pour créer une branche de travail.
  3. Modifier les fichiers, tester.
  4. git add puis git commit -m "Corrige l'affichage du menu sur mobile".
  5. git push pour envoyer la branche sur le serveur.
  6. 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.

À lire aussi

Compétences informatiques : toutes les fiches