Afin de pouvoir mettre en place votre environnement de travail rapidement, vous pouvez suivre les étapes ci-dessous.
Forkez le dépôt https://github.com/Laefy/CPP_Learning_Code/.
Ouvrez une nouvelle fenêtre dans VSCode et cliquez sur “clone repository…”
Copiez le lien de votre dépôt créé par le fork.
Collez ce lien dans la fenêtre de VSCode et sélectionnez “Clone from URL”.
Choisissez le répertoire dans lequel le dépôt sera cloné.
Ouvrez le répertoire cloné dans VSCode.
Ouvrez le menu CMake.
Cliquez sur le bouton permettant de configurer le projet (commande VSCode : CMake: Configure
).
Choisissez le compilateur à utiliser dans la liste qui vous est proposée.
Autoriser CMake Tools à configurer IntelliSense.
L’ensemble des exécutables devraient être apparu dans le menu CMake, rangés par dossier.
Retournez sur la vue du workspace et modifiez les fichiers de votre choix.
Dans la barre bleue en bas, cliquez sur le bouton de lancement (si vous en avez plusieurs, utilisez celui à droite de l’insecte).
L’exécutable sera compilé automatiquement s’il n’est pas à jour.
Sélectionnez la cible à exécuter.
Si le programme a correctement compilé, il devrait s’être exécuté dans le terminal.
Vous devriez aussi voir apparaître le nom de la cible à-côté du bouton de lancement.
Supposons maintenant que vous souhaitiez travailler sur un autre programme.
Cliquez sur le nom de la cible à-côté du bouton de lancement.
Sélectionnez la nouvelle cible à exécuter.
Cliquez enfin sur l’un des deux boutons de lancement :
- insecte : exécution en mode debug (Ctrl+F5)
- lecture : exécution sans debug (Shift+F5)
Exécutez la commande git status
pour voir les fichiers modifiés.
Utilisez ensuite git add
sur les fichiers dont vous voulez sauvegarder les changements (git add .
pour tout ajouter).
Entrez ensuite la commande git commit -m "un message décrivant vos changements"
afin de sauvegarder les changements sur votre disque.
Exécutez la commande git remote add upstream https://github.com/Laefy/CPP_Learning_Code.git
pour que votre dépôt local puisse faire référence au dépôt du cours avec l’identifiant upstream
.
Vous pouvez utiliser les commandes git remote -v show
pour afficher la liste de tous les dépôts distants suivis par votre dépôt local :
- origin
fait généralement référence au dépôt cloné,
- upstream
fait généralement référence au dépôt forké.
Utilisez ensuite git fetch upstream
afin de télécharger dans les branches du dépôt pointé par upstream
.
Exécutez git branch -a
pour vérifier que les branches de upstream
ont bien été récupérées dans votre dépôt.
Le but de la prochaine manipulation sera d’intégrer les changements de la branche upstream/master
dans votre branche locale.
Exécutez la commande git merge upstream/master
afin de récupérer les changements de la branche.
Dans l’image suivante, on voit qu’il n’y a eu aucun nouveau changement sur le dépôt du cours.
Si après quelques jours, vous pensez que des changements ont eu lieu sur le dépôt distant, vous pouvez réexécuter les commandes git fetch upstream
et git merge upstream/master
.
Ici, de nouveaux changements ont été détectés et récupérés sur la branche locale master
.
Supposons que vous ayiez modifié le fichier CMakeLists.txt à un moment, pour ajouter un commentaire dedans.
Vous avez bien entendu sauvegardé votre changement en appelant git add CMakeLists.txt
puis git commit -m "..."
.
Vous lancez ensuite git fetch upstream
et git merge upstream/master
pour récupérer les derniers changements du cours.
Hélas, ces changements contenaient également des modifications autour de la ligne que vous aviez modifié dans le fichier CMakeLists.txt
.
Votre branche locale se retrouve donc dans un état de conflit.
Vous pouvez constater dans la sortie sur le terminal que le conflit concerne effectivement le fichier CMakeLists.txt
, mais ce n’est pas forcément ce qu’il y a de plus lisible.
Ouvrez du coup le menu SourceControl dans VSCode.
Vous pouvez maintenant voir clairement la liste de tous les fichiers contenant des conflits. Ici, il n’y a que CMakeLists.txt
.
Cliquez sur ce fichier afin de l’ouvrir dans l’éditeur.
Vos propres modifications apparaissent dans la partie “Current Change”, et les modifications que vous essayez de merger apparaissent dans la partie “Incoming Change”.
Vous pouvez cliquer sur l’une des options juste au-dessus du conflit pour choisir les modifications que vous préférez garder.
Vous pouvez aussi éditer le fichier à la main directement.
Ici, vous avez décidé de conserver les nouveaux changements (“Accept Incoming Change”) et avez sauvegardé le fichier.
Mais vous avez finalement des regrets…
Pour revenir en arrière, exécutez la commande git merge --abort
.
Vous devriez constater que tous les fichiers sont revenus à l’état qu’ils avaient avant d’essayer de merger.
Entrez de nouveau la commande git merge upstream/master
.
Ce coup-ci, vous décidez d’éditer le fichier à la main, afin de conserver les deux commentaires : le vôtre et celui du cours.
Lancez la commande git status
pour être sûr de ne rien oublier.
Ici, le fichier CMakeLists.txt apparaît toujours dans la liste des fichiers à merger.
Utilisez git add CMakeLists.txt
pour valider la résolution du conflit dans ce fichier, puis finalement le merge avec git commit
.
Un fichier devrait s’ouvrir dans l’éditeur configuré pour git (VSCode dans la capture, mais s’agira probablement d’un autre éditeur chez-vous).
Sauvegardez et fermez ce fichier pour enregistrer le commit.
Utilisez maintenant la commande git log
pour vérifier que vous avez bien récupérer les changements de la branche upstream/master
.
Vous devriez voir apparaitre la liste des derniers commits de votre branche local (du moins récent en bas au plus récent en haut).
Vous pouvez voir que vous êtes bien à jour de la branche upstream/master
, car son nom apparaît à-côté de l’un des commits.
Ensuite, vous trouvez la liste de vos propres commits.
Pour terminer, le commit du merge que vous venez de réaliser apparaît tout en haut de la liste.