Introduction à Git et GitHub

21 juil. 2026

Introduction à Git et GitHub

Récemment, en réponse à d’innombrables demandes au fil des années, j’ai rédigé un tutoriel sur Git et GitHub destiné aux débutants, car cela demeure une exigence omniprésente dans les postes de développement depuis plusieurs années. Dans la première partie du tutoriel, que vous pouvez consulter ici, j’y expliquais ce que c’est, à quoi cela sert, nous préparions l’environnement, créions et clonions le dépôt, et réalisions les premiers ajustements, les stagings et les commits, en terminant par un push vers la branche main. On peut dire que nous avons traversé un cycle complet. Pas un cycle professionnel, mais complet.

Pourquoi je le dit ainsi ? Parce que, en règle générale, dans des projets professionnels, comme ceux pour lesquels vous allez postuler en entreprise, vous ne travaillerez pas sur la branche main et encore moins vous y ferez des commits et des pushes, ce n’est pas ainsi que cela fonctionne puisque main est un miroir de la production et que, bien souvent, le commit sur celle-ci déclenche des flux CI/CD qui déploient la nouvelle version en ligne.

Ainsi, dans cette leçon, nous allons approfondir certaines pratiques plus professionnelles avec Git et GitHub. Si vous préférez, vous pouvez suivre le contenu via la vidéo ci-dessous, qui couvre le même sujet.

Allons-y !

#1 – Parcourir les commits

Une fois que vous avez « pushé » votre premier commit, il est utile de jeter un œil à la page du dépôt sur GitHub pour voir ce qui s’est passé.

Vous remarquerez dans la bande grise juste au-dessus des fichiers le message du commit le plus récent (« second commit »), l’identifiant qui lui est associé, l’intervalle écoulé depuis sa création et le nombre total de commits du projet. En cliquant sur le message du commit, vous accédez à une page de détails où apparaissent les fichiers ajoutés ou modifiés, avec les ajouts affichés en vert, les suppressions en rouge et les autres changements en jaune.

Maintenant, si vous cliquez sur le nombre de commits, vous verrez quelque chose d’encore plus intéressant : la liste complète des commits du projet.

Grâce à cette liste, vous pouvez lire les messages de chaque commit, voir les modifications effectuées à chaque instant, observer l’état du dépôt à ce moment précis (Browse Repository) ou même remonter le temps. Oui, si, pour une raison quelconque, il vous faut récupérer une version antérieure du projet, vous pouvez utiliser la commande suivante pour le faire, en ayant simplement l’ID du commit que vous pouvez récupérer à droite de la liste des commits.

git checkout <id_commit>

Cette commande va restaurer dans le dossier du projet la version précise que vous avez fournie, vous permettant de vous en servir, d’apporter de nouvelles modifications à partir de celle-ci et bien plus encore. Attention toutefois au fait que vous travaillez dans le passé, ce qui rend la fusion avec la version principale ensuite plus délicate ; le plus recommandé dans ce cas est de créer de nouvelles branches, ce que nous allons voir ensuite.

#2 – Gestion des branches et fusion

L’un des avantages d’utiliser un outil de contrôle de version est la possibilité pour deux personnes ou plus de travailler en parallèle sur le même projet. Cependant, lorsque Alice travaille sur une fonctionnalité A et Bob sur une fonctionnalité B, les modifications de l’un peuvent affecter le travail de l’autre, non ? Bien sûr, sur leurs machines respectives, ce souci n’apparaît que lorsque les modifications doivent être fusionnées. À ce moment-là, il faut effectuer ce que l’on appelle une fusion (merge), mais nous reviendrons dessus plus tard.

Le problème ici est que ni Alice ni Bob ne devraient pas travailler directement sur le miroir de production, c’est-à-dire sur la version main. En effet, pendant qu’ils ajoutent de nouvelles fonctionnalités, il peut surgir une demande urgente à résoudre sur la version de production, ce qui impliquerait un nouveau code et un nouveau déploiement. Si l’on continue à toucher à la version de production, celle-ci serait compromise et potentiellement destabilisée, quelque chose qui ne peut jamais arriver. Dans ce cas, chaque fois qu’Alice et Bob doivent intégrer de nouvelles fonctionnalités, ils doivent d’abord créer une nouvelle branche à partir de la main.

Une branche (ou ramification) est une copie du projet qui possède sa propre vie, comme une nouvelle ligne temporelle partant d’un point donné, généralement le plus récent. Chaque développeur peut créer sa propre branche et travailler dessus indépendamment des autres, y compris en y faisant des commits. Plus tard, lorsque son travail est terminé, il peut la fusionner avec une autre branche existante, par exemple main, afin d’unir l’historique principal. L’image ci-dessous illustre ce mécanisme.

Dans cet exemple, nous avons la branche master (ancien nom de main) en vert, symbolisant la version principale du projet. À un moment donné, le développeur bleu a créé une branche à partir du premier commit de main (le point vert) pour travailler sur de nouvelles fonctionnalités, et a fusionné son travail avec la branche principale trois commits plus tard (le point vert numéro 4). Notez qu’il a aussi eu trois commits, dont le premier est celui de création de la branche et les deux suivants les modifications qu’il a apportées, mais tout dans sa branche alternative. Pendant cette période, un autre développeur, l’orange, a également ouvert une autre branche sur le commit 3 de main, qui viendrait à se fusionner avec elle plus tard, à la fin du graphe.

En règle générale, Git est naturellement capable de fusionner les modifications du développeur bleu vers main et celles du développeur orange vers main. Ainsi, la fusion des modifications est généralement automatique et tout l’historique est préservé. Bien sûr, cela suppose qu’il n’y ait pas de conflits. Lorsque des modifications du bleu et de l’orange entrent en conflit — puisque l’orange a commencé son travail avant la fusion du bleu — il faut procéder à une analyse, de préférence avec un outil visuel, pour comprendre le code qui demeure, ce qui part et faire un compromis. Cela correspond à la fusion (merge), que nous développerons plus en détail plus tard. Pour l’instant, cette compréhension initiale est suffisante et nous allons maintenant apprendre comment créer des branches.

#3 – Utilisation des branches

La première étape pour commencer à utiliser les branches, après avoir compris le concept (expliqué précédemment), consiste à découvrir quelles branches existent actuellement dans le projet, ce qui peut être fait avec la commande ci-dessous.

git branch

Cela va lister leurs noms, l’un sous l’autre, et l’on peut s’attendre à voir uniquement « main » à ce stade. Un astérisque à côté du nom indique la branche actuellement sélectionnée sur votre machine.

Maintenant, imaginez que vous allez démarrer le développement d’une nouvelle fonctionnalité. La première étape est de créer une nouvelle branche, n’est-ce pas ? Vous pouvez le faire avec la commande ci-dessous.

git branch nom_branch
 
//ou
 
git switch -c nom_branch
 
//ou
 
git checkout -b nom_branch

L’une quelconque de ces trois commandes crée une nouvelle ligne du temps à partir du dernier commit de la branche actuellement sélectionnée, et vous pouvez le confirmer avec la commande “git branch”. Cependant, la première commande ne crée que la branche sans la basculer pour commencer le travail. Pour réellement démarrer les modifications de manière indépendante de main dans notre nouvelle branche, il faut la sélectionner, avec l’une des commandes ci-dessous.

git switch nom_branch
 
//ou
 
git checkout nom_branch

Maintenant, si vous exécutez à nouveau la commande pour lister les branches, vous verrez les mêmes branches affichées, mais l’indicateur indiquant la branche active sera à côté de la nouvelle que vous avez créée. À partir de là, toutes les modifications que vous effectuerez et que vous committerez appartiendront exclusivement à la nouvelle branche et non à main. Essayez d’apporter des modifications et relancez les commandes pour les sauvegarder.

//apportez des modifications au projet
git add .
git commit -m "explique les modifications"
 
//ou les deux ensemble avec:
 
git commit -am "explique les modifications"

Maintenant, si vous exécutez la commande pour voir les commits (ci-dessous), vous verrez qu’il y a un commit supplémentaire dans votre nouvelle branche (la mienne s’appelle nouvelle_pagina).