GitDébut décembre 2022, l’École des Mines d’Alès m’a contacté pour me demander de dispenser un cours sur Git à partir de mars 2023. Je venais tout juste de terminer mon cours annuel de culture générale autour d’Unix, de Linux et de l’Open Source, et j’ai accepté à pieds joints cette proposition de cours plus technique pour mes étudiants admins et développeurs. Après mûre réflexion (environ cinq secondes), j’ai décidé de rédiger mon propre support de cours et de le publier sur ce blog.

À qui s’adresse cette formation ?

  • À mes étudiants à l’École des Mines d’Alès (cf. plus haut).
  • À tous ceux qui travaillent sur des projets informatiques (code source, scripts, documentation, etc.) et qui ont besoin de versionner ces projets.
  • Aux grands débutants qui ne savent pas exactement ce que c’est que Git ou la gestion de versions.
  • À ceux qui utilisent Git au quotidien sans trop savoir comment ça fonctionne et qui redoutent d’utiliser telle ou telle fonctionnalité de peur de se tirer dans le pied.

Avant de mettre la main à la pâte

Cette formation n’est pas très exigeante en matière de prérequis. Mais il y en a quelques-uns :

  • Connaître les bases du shell et de la ligne de commande.
  • Connaître les commandes de base comme ls, cd, pwd, mv, cp, rm, etc.
  • Savoir utiliser un éditeur de texte comme Vim ou Nano.

Quelques remarques en vrac sur la méthodologie :

  • Tous les ateliers pratiques présentés dans cette formation ont été élaborés et testés sur une installation minimale de Rocky Linux 8.
  • A priori, ils fonctionneront tels quels sur n’importe quelle distribution Linux.
  • Même si je compte vous montrer en temps et en heure l’installation de Git sous Windows et sous MacOS, je vous conseille quand-même de vous atteler à Git sous Linux, du moins dans un premier temps. Microsoft et Apple aiment bien présenter comme des nouveautés révolutionnaires des concepts qui existent déjà depuis des décennies sous Unix et Linux, et il en résulte toute une série d’idiosyncrasies bizarres comme GitBash, WSL, le PowerShell, etc.
  • J’utilise des outils simples en ligne de commande, à commencer par la commande git elle-même (et non pas une quelconque surcouche graphique).
  • Une fois que vous aurez compris et assimilé les concepts de base avec le sourire, vous n’aurez probablement pas de mal à utiliser les fonctionnalités de Git intégrées dans Visual Studio Code sous Microsoft Windows.

Gérer un projet informatique

Lorsqu’un projet informatique est géré par plusieurs personnes, il leur faut un outil capable de faire plusieurs choses :

  • Permettre à tous les développeurs d’accéder aux fichiers du projet (code source, scripts, documentation, etc.) sans que ça soit le bazar intégral.
  • Enregistrer l’historique du projet avec l’ensemble des modifications.

Plus concrètement :

  • Chaque développeur doit être au courant de ce que font ses collègues.
  • Il peut tester leur code source en interaction avec son propre code.
  • Il peut tester son propre code sans faire planter tout le projet.
  • Il peut savoir qui a eu la fâcheuse idée de changer le nom d’une variable en cours de route.
  • Une fois que le projet est lancé, on pourra savoir facilement qui est à l’origine de l’horrible faille de sécurité qu’on vient de découvrir.

Ce genre de tâche est confiée à un VCS (Version Control System) ou logiciel de gestion de versions. Dans le bon vieux temps, les développeurs chassaient l’ours à mains nues et utilisaient CVS (Concurrent Versions System) ou SVN (Subversion).

Présentation de Git

En 2005, Linus Torvalds avait besoin d’un nouveau logiciel de gestion de versions pour le développement du noyau Linux. Jusque-là, la communauté de développeurs du kernel avait utilisé le logiciel propriétaire Bitkeeper, mais ils se voyaient contraints de trouver une autre solution suite à un changement de licence quelque peu prohibitif. Les solutions Open Source comme CVS ou SVN étaient trop limitées et ne répondaient pas aux besoins du projet. Le créateur de Linux a donc décidé d’ouvrir une parenthèse sur le développement du kernel. Il lui faudra deux semaines en tout et pour tout pour écrire la première version de Git, un logiciel de gestion de versions distribué (DVCS ou Distributed Version Control System).

AstuceEn argot, « git » signifie quelque chose comme « crétin » ou « imbécile », et man git définit l’outil comme un « stupid content tracker« . Si vous pensez voir là un signe d’immaturité du développeur, dites-vous que c’est le même gars qui a créé les deux logiciels les plus populaires de la planète. Donc respect, hein.

L’outil Git a été adopté rapidement et sans trop de soucis par l’équipe de développeurs du noyau Linux, et Linus Torvalds a lâché les rênes de Git pour confier le développement à d’autres que lui. Petit à petit, Git a été adopté par les développeurs et les développeuses du monde entier, y compris ceux et celles qui ne travaillent pas forcément dans le monde de l’Open Source.

Ce succès s’explique principalement par l’essor des plateformes de développement comme GitHub et GitLab. L’hébergement de projets logiciels est devenu un jeu d’enfants grâce à ces plateformes, à tel point que même le code source du noyau Linux est actuellement hébergé par GitHub.

Ce qui est d’ailleurs un peu une ironie du sort, étant donné que Git est avant tout un système de gestion de versions décentralisé. Et que visiblement, c’est l’approche centralisée de GitHub et de GitLab qui a entraîné la popularité de Git au-delà du cercle restreint des hackers et autres gourous de l’Open Source.

Le seul souci de Git, c’est sa complexité. Dans la pratique quotidienne, nous utilisons allègrement les fonctions basiques de l’outil pour gérer notre code source, nos scripts et nos pages de documentations. Or, Git est un outil conçu par des pros pour des pros, et la plupart d’entre nous l’utilisent sans trop savoir comment ça fonctionne vraiment sous le capot

L’objectif de cette formation est double, même si les deux se rejoignent en fin de compte :

  • vous fournir une base solide avec les fondamentaux de Git
  • présenter progressivement quelques fonctionnalités plus avancées de l’outil

Lire la suite : Installation & Configuration


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *