Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

Accueil > Programmer avec Java > PrĂ©prarer l’environnement de dĂ©veloppement >

đŸ› ïž Partager le code avec Git et GitHub

Survol et attentes

Définitions
DépÎts
(“repos” en anglais) Les projets gĂ©rĂ©s avec Git sont appelĂ©s dĂ©pĂŽts. Un dĂ©pĂŽt est un dossier qui contient tous les fichiers de votre projet, y compris les fichiers de configuration de Git. Les dĂ©pĂŽts sont stockĂ©s sur votre ordinateur et peuvent ĂȘtre partagĂ©s avec d’autres personnes sur GitHub. Les dĂ©pĂŽts sur votre ordinateur s’appellent des dĂ©pĂŽts locaux, tandis que ceux sur GitHub sont des dĂ©pĂŽts distants.
ClĂŽner
Pour copier un dépÎt distant sur votre ordinateur, vous devez le clÎner. Cela crée une copie locale du dépÎt sur votre ordinateur. Vous pouvez ensuite travailler sur le projet localement et synchroniser les changements avec le dépÎt distant.
Modifier
selon Git un fichier modifié a été soit édité, ajouté ou supprimé depuis la derniÚre version validée. Ces modifications existent sur votre disque dur, mais ne sont pas encore enregistrées dans Git. Git vous permet de supprimer les modifications depuis la derniÚre validation, au besoin, ce qui affectent les fichiers sur votre disque dur.
Indexer
(“stage” en anglais) indexer les modifications est comme un photographe qui choisit son sujet. Vous sĂ©lectionnez les fichiers modifiĂ©s que vous voulez inclure dans votre prochain instantanĂ©. Vous ne pouvez pas prendre une photo sans un sujet, et vous ne pouvez pas faire une validation sans avoir indexĂ© au moins une modification.
Valider
(“commit” en anglais) toujours dans le contexte de la photographie, valider est comme prendre une photo. Vous crĂ©ez un instantanĂ© de votre projet Ă  un moment donnĂ©. Vous pouvez revenir Ă  cet instantanĂ© Ă  tout moment pour voir ce Ă  quoi ressemblait votre projet Ă  ce moment-lĂ .

Il faut toujours identifier un commit avec un court message; il n’est pas possible de complĂ©ter l’opĂ©ration sans ce message.

Synchroniser
(“sync” en anglais) synchroniser un dĂ©pĂŽt veut dire combiner et mettre Ă  jour les validations du dĂ©pĂŽt local et du dĂ©pĂŽt distant. Toutes les validations qui ne sont pas communes seront partagĂ©es. Ainsi, une synchronisation poussera les validations locales vers le dĂ©pĂŽt distant et tirera les validations distantes dans votre dĂ©pĂŽt local.

Cette opĂ©ration peut gĂ©nĂ©rer des conflits de fusion des validations. Si cela se produit, demandez de l’aide Ă  votre enseignant.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez ĂȘtre en mesure de :

  • ClĂŽner un projet partagĂ© via GitHub
  • Modifier, indexer et valider des fichiers dans un dĂ©pĂŽt local
  • Synchroniser les changements avec le dĂ©pĂŽt distant

CritĂšres de succĂšs

  • Je suis capable d’utiliser Git (dans VS Code) et GitHub (dans un navigateur web) pour archiver mon code et le partager avec mes enseignants.

ClÎner un projet partagé via GitHub

Votre enseignant vous prépare des gabarits de projets, parfois juste des dossiers vides, pour organiser vos programmes dans le cours. Pour les utiliser, vous devez les clÎner dans votre ordinateur. Voici comment faire :

  • Acceptez d’abord la tĂąche dans GitHub Classroom, ce qui vous crĂ©era une copie personnelle du projet sur GitHub.

  • Ouvrez VS Code.

  • Ouvrez la palette de commandes avec Ctrl + Shift + P.

  • Tapez “clone” pour trouver la commande Git: Clone et cliquez dessus. Si vous l’avez dĂ©jĂ  utilisĂ©e, elle apparaĂźtra dans la liste des commandes rĂ©centes sans avoir Ă  la chercher.

    Si c’est la premiĂšre connexion, VS Code vous demandera de vous connecter Ă  GitHub. Suivez ATTENTIVEMENT les instructions pour vous connecter. Si on vous propose une option “toujours
”, cochez-la pour Ă©viter des problĂšmes de connexion Ă  l’avenir.

    À SURVEILLER : Parfois la fenĂȘtre pour une des Ă©tapes d’authentification apparaĂźt en arriĂšre-plan, bloquant la connexion. Regarder la barre des tĂąches pour voir s’il y a des nouvelles fenĂȘtres ouvertes.

  • Cliquez ensuite sur Clone from GitHub et attendre que la liste des dĂ©pĂŽts apparaisse. Puisque vous n’en avez pas beaucoup, votre dĂ©pĂŽt sera facile Ă  trouver dans la liste.

  • Cliquez sur le dĂ©pĂŽt que vous voulez clĂŽner et choisissez un dossier oĂč le clĂŽner dans la fenĂȘtre qui s’ouvre. Je suggĂšre fortement d’utiliser votre dossier “Documents” pour tous les projets.

  • VS Code crĂ©era un dossier avec le nom du dĂ©pĂŽt Ă  cet endroit et copiera le projet dedans.

  • VS Code vous proposera d’ouvrir le dossier clĂŽnĂ© avec les options suivantes :

    • Open : ferme le projet ouvert actuellement et ouvre le projet clĂŽnĂ©
    • Open in New Window : ouvre le projet clĂŽnĂ© dans une nouvelle fenĂȘtre de VS Code (gardant le projet actuellement ouvert dans la fenĂȘtre originale)
    • Add to Workspace : ajoute le projet clĂŽnĂ© Ă  la liste des dossiers actuellement ouverts dans VS Code (utile si vous avez plusieurs projets ouverts en mĂȘme temps)

      En général, les options Open ou Open in New Window sont les plus simples à gérer.

ClĂŽnez une seule fois, synchronisez par la suite

Si vous avez dĂ©jĂ  clĂŽnĂ© un projet, vous n’avez pas besoin de le clĂŽner Ă  nouveau pour continuez Ă  travailler dedans. Vous pouvez simplement ouvrir le dossier du projet dans VS Code. Il y a mĂȘme une section “Open Recent” dans le menu “File” pour vous aider Ă  retrouver les projets que vous avez ouverts rĂ©cemment.

Testez votre compréhension

ClĂŽnez le projet “pratique” dans votre dossier “Documents” et ouvrez-le dans VS Code. Le lien pour le gabarit de ce projet est partagĂ© avec vous dans Classroom.

Modifier, indexer et valider des fichiers dans un dépÎt local

Cette section vous montre comment apporter des changements dans votre dépÎt local, les conserver avec Git et les partager avec le dépÎt distant, sur GitHub.

Modifier

Cette Ă©tape est la partie normale de la production de code : vous crĂ©ez, modifiez et supprimez des fichiers en faisant vos exercices ou en dĂ©veloppant vos programmes. Assurez-vous de travailler dans un dossier de projet et non sur des fichiers isolĂ©s. Seulement les fichiers dans un dĂ©pĂŽt local - comme ceux que vous clĂŽnĂ©s de GitHub - peuvent ĂȘtre indexĂ©s et validĂ©s. Les dĂ©pĂŽts locaux sont tous des dossiers.

Vous savez que vous faites des modifications dans un dĂ©pĂŽt local si vous voyez un “M” Ă  cĂŽtĂ© des noms des fichiers modifiĂ©s ou un “U” (pour “Untracked”) pour les fichiers que vous venez de crĂ©er. Si vous faites des modifications et vous ne voyez pas ces indicateurs, il y a deux possibilitĂ©s : vous n’avez pas enregistrĂ© les fichiers sur le disque (activez l’enregistrement automatique) ou les fichiers ne sont pas dans un dĂ©pĂŽt (utiliser l’Explorateur de fichiers Windows pour les dĂ©placer dans votre dĂ©pĂŽt).

De plus, vous devrez utiliser les outils de travail (les extensions Java, le terminal intĂ©grĂ©, etc.) pour vous aider Ă  Ă©crire du code Java valide et fonctionnel. La leçon prĂ©cĂ©dente sur VS Code vous explique davantage ces outils. En d’autres mots, vous devrez tester votre code avant de passer aux prochaines Ă©tapes.

Indexer et valider

En plus des indicateurs de modification mentionnĂ©s plus haut, vous pouvez voir le nombre de fichiers modifiĂ©s sur l’icĂŽne de l’outil Git dans la barre latĂ©rale de VS Code. Vous pouvez seulement indexer et valider des fichiers modifiĂ©s, alors vous pouvez seulement passer Ă  cette Ă©tape quand il y a un nombre affichĂ©.

Ces Ă©tapes peuvent se faire au terminal - et vous avez beaucoup plus de possibilitĂ©s au terminal - mais VS Code vous offre une interface graphique pour les faire, ce qui est plus convivial. Voici comment l’utiliser :

  • Cliquez sur l’icĂŽne “Source Control” dans la barre latĂ©rale de VS Code ou en tapant Ctrl + Shift + G (“G” pour “Git”).
  • Les fichiers modifiĂ©s apparaĂźtront dans la liste “Changes”. Ce sont tout les fichiers qu’il est possible d’indexer.

    Vous pouvez cliquer sur un fichier pour voir les modifications qu’il contient. Les lignes en vert sont les ajouts, les lignes en rouge sont les suppressions.

  • Pour indexer un fichier, cliquez sur le + Ă  cĂŽtĂ© du nom du fichier. Cela ajoutera le fichier Ă  la liste des fichiers indexĂ©s. Vous pouvez indexer tous les fichiers en cliquant sur le + en haut de la liste (Ă  cĂŽtĂ© de “Changes”). Les fichiers indexĂ©s sont les sujets de l’instantanĂ© que vous allez prendre en validant les modifications.
  • Écrire un message qui dĂ©crit les modifications indexĂ©es. Il est impossible de complĂ©ter la validation sans ce message. Il y a une zone de texte en haut du panneau de contrĂŽle pour taper ce message. Voici quelques exemples de messages courts et descriptif :
    • Salut.java et capture pour l’exercice 1
    • ajout de commentaires pour l’exercice 2
    • progession sur Projet.java
    • correction d’erreurs dans Main.java
  • Valider les modifications indexĂ©es en cliquant sur le bouton “Commit” (le bouton avec la coche). Cela prend un instantanĂ© des modifications indexĂ©es. Ces modifications sont maintenant enregistrĂ©es dans Git, mais seulement sur votre ordinateur dans le dĂ©pĂŽt local.

    Si vous oubliez d’écrire un message, VS Code bloque l’opĂ©ration et ouvre un Ă©diteur de message Ă  la droite. Écrivez votre message sur une ligne qui ne commence pas par # (qui est un commentaire) et fermez l’éditeur (en l’enregistrant au besoin). La validation se complĂ©tera automatiquement.

Testez votre compréhension

Modifiez le fichier “README.md” dans le projet “pratique” : ajouter une ligne vide ou supprimez quelque chose. Indexez et validez le fichier avec un message descriptif.

Visitez votre dĂ©pĂŽt sur GitHub pour voir que les modification n’ont pas Ă©tĂ© partagĂ©es. RafraĂźchissez la page pour ĂȘtre certain. Ces Ă©tapes ont seulement créé une version qui peut ĂȘtre partagĂ©e avec un dĂ©pĂŽt distant. Il faut faire la synchronisation pour partager cette version.

Synchroniser les changements avec le dépÎt distant

Valider et synchroniser du code est comme la photographie. Un clichĂ© se trouve d’abord juste sur l’appareil du photographe. Pour les partager avec le monde, le photographe doit les tĂ©lĂ©verser sur une plateforme de partage, comme un rĂ©seau social.

Partager des instantanĂ©s de code est pareil. La validation enregistre l’instantanĂ© sur votre ordinateur mais vous devez encore le tĂ©lĂ©verser sur le dĂ©pĂŽt distant (GitHub), soit le synchroniser avec ce dĂ©pĂŽt. Voici comment faire :

  • AprĂšs la validation, le bouton “Commit” devient “Sync Changes” avec le nombre de validations Ă  pousser. S’il y a aussi des validations sur le dĂ©pĂŽt distant qui ne sont pas sur votre ordinateur, le bouton affichera le nombre de validations Ă  tirer.
  • Pour synchroniser, il suffit de cliquer sur le bouton.

Bonnes habitudes pour éviter les conflits de fusion

Pour Ă©viter d’avoir Ă  fusionner les validations Ă  tirer avec les validations Ă  pousser, vous devrez suivre ces rĂšgles d’or : toujours synchroniser (tirer) avant de commencer Ă  travailler sur un projet et toujours synchroniser avant de fermer l’ordinateur. De cette façon, tout ce qui est Ă  tirer arrive seul au dĂ©but d’une session de travail, laissant seulement les modifications Ă  pousser Ă  la fin de la session de travail. De plus, vous commencerez toujours votre session avec la version la plus Ă  jour du projet.

AprÚs votre premiÚre synchronisation, VS Code vous demandera si vous voulez tirer périodiquement les modifications distantes. Je vous recommande de le faire (ce qui inclut une synchronisation chaque fois que vous ouvrez le projet), mais vous pouvez choisir de le faire manuellement si vous préférez afin de développer la discipline de synchroniser avant de travailler.

Vous devrez tout de mĂȘme dĂ©velopper la discipline de synchroniser Ă  la fin des pĂ©riodes de travail.

Quand vous travaillerez en Ă©quipes (l’annĂ©e prochaine), il y a des stratĂ©gies plus avancĂ©es pour Ă©viter les conflits de fusion - notamment l’utilisation de branches, mais pour vos projets personnels, cette rĂšgle est suffisante et efficace.

Testez votre compréhension

Synchronisez les modifications du projet “pratique” avec le dĂ©pĂŽt distant. Visitez votre dĂ©pĂŽt sur GitHub pour voir que les modifications ont Ă©tĂ© partagĂ©es. RafraĂźchissez la page au besoin.

© 2022-2025 David Crowley