Skip to main content

Bien démarrer avec Git

Découvrez les bases de Git en travaillant sur un scénario type.

N’avez-vous jamais rêvé d’avoir une machine à remonter le temps pour votre code ? Eh bien, grâce à Git, ce rêve devient réalité, et bien plus encore !

Si vous ne connaissez pas encore Git, il s’agit d’un système de contrôle de version qui vous aide à suivre les modifications apportées à votre code. Vous pouvez enregistrer un instantané de votre projet à un moment précis, puis effectuer des modifications expérimentales sans risquer de perdre votre travail, car vous pouvez toujours revenir à votre instantané.

GitHub est une plateforme basée sur Git, qui vous permet d’enregistrer vos projets Git dans le cloud et de collaborer avec d’autres développeurs.

Même si Git peut sembler compliqué, il s’agit d’un outil puissant et indispensable pour tout développeur. Cet article vous donnera tous les outils dont vous avez besoin pour utiliser Git dans votre flux de travail quotidien.

Prérequis

Pour suivre ce tutoriel, vous devez installer Visual Studio Code.

Découverte des bases de Git avec GitHub Desktop

Pour les opérations Git standard, nous recommandons GitHub Desktop, une application qui vous permet d’interagir avec Git visuellement au lieu de passer par des commandes écrites. Dans cette section, nous allons apprendre à utiliser GitHub Desktop pour effectuer rapidement les opérations Git les plus courantes.

Configuration de GitHub Desktop

Si vous utilisez GitHub Desktop pour la première fois, vous devez l’installer et connecter votre compte GitHub.

  1. Téléchargez GitHub Desktop.
  2. Ouvrez GitHub Desktop, puis cliquez sur Se connecter à GitHub.com et autorisez GitHub Desktop à accéder à votre compte.
  3. De retour dans GitHub Desktop, cliquez sur Terminer. Votre nom et votre adresse e-mail de votre compte GitHub seront ainsi ajoutés à Git.

Créer un référentiel local

Vous pouvez maintenant faire vos premiers pas dans Git en créant un référentiel. Considérez un référentiel comme un dossier de projet qui suit les modifications et stocke l’historique. Tout d’abord, nous allons créer un référentiel local :

  1. Dans GitHub Desktop, cliquez sur Créer un référentiel sur votre lecteur local.

  2. Nommez le référentiel learning-git.

  3. Sélectionnez Initialiser ce référentiel avec un fichier LISEZMOI pour créer automatiquement un fichier README.md vide.

    Tip

    Il est courant d’inclure un fichier README.md, également appelé LISEZMOI, dans vos projets. Les fichiers LISEZMOI contiennent généralement des informations utiles pour comprendre, configurer et exécuter votre projet.

  4. Cliquez sur Créer un dépôt.

Création d’un dépôt distant

Le référentiel local que vous venez de créer se trouve sur votre ordinateur. Créons maintenant un dépôt distant pour le même projet, qui sera hébergé sur GitHub. La liaison à un dépôt distant facilite la collaboration et la sauvegarde de votre travail.

  1. Dans GitHub Desktop, cliquez sur Publier le référentiel.
  2. Dans la fenêtre contextuelle qui apparaît, cliquez une nouvelle fois sur Publier le référentiel.
  3. Pour afficher votre dépôt distant, cliquez sur Afficher sur GitHub.

Configuration d’un espace pour apporter des modifications

Maintenant que vous avez créé un référentiel, parlons des branches. Les branches sont essentiellement des copies de votre projet où vous pouvez tester des modifications sans compromettre la stabilité de votre travail existant.

Les référentiels sont automatiquement créés avec une branche main, que vous pouvez considérer comme la version stable et principale de votre projet. Par exemple, dans le référentiel d’un site web, la branche main correspond au site que les visiteurs peuvent voir.

Lorsque vous créez une nouvelle branche, vous créez un espace sécurisé pour travailler sur une nouvelle fonctionnalité sans affecter la version principale. Vous et vos collaborateurs pouvez utiliser différentes branches pour travailler simultanément sur plusieurs fonctionnalités.

Créons une branche pour travailler sur les modifications de notre référentiel :

  1. Dans GitHub Desktop, sélectionnez le menu déroulant Branche actuelle, puis cliquez sur Nouvelle branche.
  2. Nommez votre nouvelle branche readme-updates, puis cliquez sur Créer une branche.

Enregistrement des instantanés de votre projet

Pour enregistrer votre progression dans votre branche, vous effectuez un commit. Un commit est un instantané que vous prenez de votre projet à un moment précis. En fait, vous avez déjà effectué votre premier commit : lorsque vous avez initialisé votre projet avec un fichier LISEZMOI, GitHub Desktop a automatiquement créé un commit initial pour ajouter le fichier README.md.

Chaque fois que vous terminez une partie du travail que vous souhaitez sauvegarder, vous devez effectuer un commit. Après cela, vous pouvez toujours revenir à ce point précis, quel que soit le nombre de modifications que vous apporterez par la suite.

  1. Dans GitHub Desktop, cliquez sur Ouvrir dans Visual Studio Code.

  2. Dans VS Code, collez le texte suivant dans README.md et enregistrez vos modifications :

    Markdown
    Hello, World!
    
    This is a demo project for learning how to use Git.
    
  3. De retour dans GitHub Desktop, vous pourrez voir les modifications que vous venez d’apporter à votre fichier LISEZMOI. En bas à gauche, à côté de votre photo de profil GitHub, tapez « Mettre à jour le fichier LISEZMOI » dans la zone de texte. C’est ce qu’on appelle un message de commit, et il vous aide à suivre les modifications que vous apportez à chaque commit.

  4. Pour effectuer votre commit, cliquez sur Commiter les mises à jour du fichier LISEZMOI..

Intégration de vos modifications dans votre branche primaire

Lorsque vous êtes satisfait des modifications que vous avez apportées à une branche, vous pouvez publier votre branche dans le dépôt distant et créer une demande de tirage (pull request). Les demandes de tirage (pull requests) vous permettent de passer en revue un ensemble de modifications proposées, puis de les fusionner d’une branche à l’autre. Dans notre cas, nous allons créer une demande de tirage (pull request) qui intègre les modifications que nous avons apportées dans readme-updates dans notre branche d’origine, main.

  1. Cliquez sur Publier la branche pour envoyer (push) la branche readme-updates avec vos modifications vers le dépôt distant.

  2. Pour passer en revue vos modifications suggérées, cliquez sur Préversion de la demande de tirage (pull request).

  3. Cliquez sur Créer une demande de tirage.

  4. Dans la fenêtre GitHub qui apparaît, modifiez le titre de votre demande de tirage (pull request) par « Ajouter un message au fichier LISEZMOI », puis écrivez une brève description de vos modifications dans la zone de commentaire.

  5. Cliquez sur ** Créer une demande de tirage**.

  6. Pour intégrer vos modifications dans la branche main, en bas de la page, cliquez sur Fusionner la demande de tirage (pull request).

    Note

    Lorsque vous travaillez sur un projet avec d’autres développeurs, il est courant qu’une autre personne passe en revue votre demande de tirage (pull request) avant qu’elle ne soit fusionnée.

  7. En bas de la page, cliquez sur Supprimer la branche. La suppression des branches fusionnées dans main contribue à la propreté et à la facilité de navigation de votre référentiel.

Préparation pour effectuer d’autres modifications

Félicitations pour la fusion de votre première demande de tirage (pull request) ! Maintenant que vous avez réussi à intégrer vos modifications dans la branche main, vous devez suivre quelques étapes pour vous préparer à votre prochaine série de modifications :

  1. Dans GitHub Desktop, si vous n’êtes pas sur la branche main, sélectionnez le menu déroulant Branche actuelle, puis cliquez sur primaire.

    Vous devez presque toujours revenir à la branche main avant de créer une nouvelle branche, car les nouvelles branches sont créées sous forme de copies de la branche actuellement sélectionnée.

  2. Pour vérifier si des modifications ont été apportées à votre branche distante main, cliquez sur Récupérer (fetch) l’origine.

  3. Enfin, pour mettre à jour votre branche locale main avec les modifications apportées à la branche distante main, cliquez sur Tirer (pull) l’origine.

Vous disposez maintenant de toutes les compétences nécessaires pour configurer et utiliser Git sur un projet !

Approfondissement de Git en ligne de commande

GitHub Desktop est conçu pour répondre à vos besoins Git quotidiens. Au fur et à mesure de votre progression en tant que développeur, vous serez probablement confronté à des situations inhabituelles où vous voudrez avoir plus de contrôle sur une opération Git ou aurez besoin d’utiliser des commandes plus complexes. Dans ces cas, vous devrez passer à l’utilisation de commandes Git écrites sur la ligne de commande.

Configuration de votre ligne de commande

Avant de commencer à travailler avec la ligne de commande, vous devez configurer quelques outils.

  1. Dans GitHub Desktop, appuyez sur Ctrl+` pour ouvrir votre projet sur la ligne de commande.

  2. Si vous utilisez Windows, installez Git. Pour macOS et Linux, Git est installé par défaut.

  3. Installez GitHub CLI, qui vous permet d’effectuer rapidement des actions liées à GitHub à partir de la ligne de commande.

  4. Pour vous authentifier auprès de GitHub à partir de GitHub CLI, exécutez la commande suivante :

    Shell
    gh auth login
    

    Choisissez de vous authentifier avec GitHub.com, puis suivez les prompts à l’écran.

  5. Installez GitHub Copilot in the CLI, une extension puissante pour GitHub CLI qui vous aide à trouver et à comprendre les commandes, en exécutant la commande suivante :

    Shell
    gh extension install github/gh-copilot
    

Expérimentation de commandes complexes

Maintenant que vous avez tout configuré, découvrez comment trouver et comprendre les commandes dont vous pourriez avoir besoin à l’avenir. Prenons l’exemple suivant : vous avez vu quelqu’un mentionner git blame en ligne, mais vous ne savez pas ce que cela fait. Essayez de demander à Copilot de l’expliquer avec la commande suivante :

Shell
gh copilot explain "git blame"

Copilot indiquera que git blame fournit un historique détaillé d’un fichier, précisant l’auteur et le commit qui ont modifié en dernier chaque ligne du fichier. Faites-en l’expérience avec la commande suivante :

Shell
git blame README.md

C’est un outil formidable, mais comme vous pouvez l’imaginer, l’historique des modifications (blame) d’un fichier peut devenir très long. Supposons que seule la dernière modification apportée à une ligne spécifique d’un fichier vous intéresse. Vous pouvez demander à Copilot de générer la commande appropriée :

Shell
gh copilot suggest "Show me the blame for line 1 of README.md"

Lorsque Copilot demande quel type de commande vous recherchez, utilisez vos touches de direction pour choisir commande git, puis appuyez sur Entrée. Copilot suggérera alors la commande suivante :

Shell
git blame -L 1,1 README.md

Utilisez vos touches de direction pour choisir Exécuter la commande, puis appuyez sur Entrée. Vous verrez l’auteur et le commit de la dernière ligne 1 modifiée de README.md.

Revue et étapes suivantes

Dans cet article, nous avons abordé les bases de Git avec GitHub Desktop, en apprenant des termes importants comme :

  • Référentiel : dossier qui enregistre toutes les modifications apportées aux fichiers de votre projet.
  • Commit : instantané de votre projet à un moment précis.
  • Branche : copie de votre projet sur laquelle vous pouvez travailler sur un ensemble de modifications.
  • Demande de tirage (pull request)  : une demande de fusion des modifications d’une branche vers une autre.

Nous avons également parlé de la réalisation d’opérations Git plus complexes sur la ligne de commande. Nous avons essayé gh copilot explain et gh copilot suggest pour comprendre et trouver de nouvelles commandes et fonctionnalités.

Maintenant, essayez d’appliquer ces connaissances à votre propre travail. Ajoutez Git à un projet existant avec GitHub Desktop en appuyant sur Ctrl+O (Windows/Linux) ou Commande+O (Mac) et découvrez par vous-même les avantages du contrôle de version !