Scénario 1 - Utiliser git pour un travail individuel#

Pour toute cette première activité, vous jouerez le rôle d’une developpeuse ou d’un développeur qui code un projet dans son coin. Vous utiliserez git dans le but de garder trace des différentes versions de votre travail et le service en ligne GitHub vous servira pour stocker des sauvegardes.

À noter

git permet de gérer les versions de vos fichiers, quel que soit le langage considéré. Dans cette partie, le code à sauvegarder sera du code Python, mais les commandes git utilisées seront les mêmes que pour du code R, HTML, etc.

Gestion d’un projet Python local avec git#

Résumé du scénario

Vous allez initialiser un nouveau projet git et créer des points de sauvegarde au fur et à mesure que vous avancerez dans votre projet.

  • Créez un dossier tutoriel_git dans lequel vous stockerez tous vos travaux de cette journée.

  • Dans ce repertoire, créez un sous-dossier vide nommé projet_python et ouvrez le dossier projet_python avec VS Code.

Configuration de git pour la première utilisation

Il est nécessaire avant de commencer de réaliser quelques configurations par défaut, au minimum spécifier ses identifiants. Pour cela, lancez un terminal dans VS Code (Menu « Terminal » → « Nouveau terminal ») et entrez les commandes suivantes :

git config --global user.name "Your Name"
git config --global user.email you@example.com

Rajouter la commande :

git config --global pull.rebase false

qui permet de dire que par défaut chaque opération de pull tente de faire aussi un merge en même temps (si besoin).

  • En utilisant le terminal de VS Code, initialisez un nouveau dépôt git (git init) dans le dossier courant.

  • Créez dans ce dossier un fichier astronautes.py qui utilise le module requests pour effectuer une requête HTTP GET à l’URL http://api.open-notify.org/astros.json et afficher la liste des astronautes actuellement dans l’espace

Votre code Python devrait ressembler à…
import requests

contenu = requests.get("http://api.open-notify.org/astros.json")
for personne in contenu.json()["people"]:
    print(personne)

Une fois votre fichier testé et validé, vous allez créer un premier point de sauvegarde. Pour cela :

  • Vérifiez l’état actuel de votre dépôt git (git status) et assurez vous que le fichier astronautes.py est bien listé dans la section « Modifications qui ne seront pas validées ».

  • Ajoutez ce fichier à la liste des fichiers suivis par git (git add).

  • Affichez de nouveau l’état du dépôt git. Qu’est-ce qui a changé ?

  • Créez un commit dont le message sera « Liste des astronautes dans l’espace ».

  • Vérifiez maintenant que le fichier astronautes.py n’apparaît plus du tout lorsque vous affichez l’état du dépôt git.

  • Regardez l’historique git (git log) : quelles informations sont stockées à chaque commit ?

Finalement, ce qui vous intéresse, c’est plus précisément la liste des astronautes actuellement à bord de la station spatiale internationale.

  • Modifiez votre code Python pour n’afficher que les astronautes pour lesquels l’attribut craft vaut "ISS".

  • Créez un nouveau commit avec un message adapté pour cette modification.

  • Ajoutez une commande dans votre script Python pour afficher le contenu de la variable contenu, et exécutez votre fichier pour vous assurer qu’il fonctionne comme attendu.

  • Finalement, vous vous rendez compte que cette dernière modification n’a pas sa place dans votre dépôt. Utilisez git pour revenir en arrière au dernier commit (git restore), c’est-à-dire avant la modification en question.

Vous souhaitez maintenant vous prémunir d’une défaillance de votre machine et donc stocker une sauvegarde de votre dépôt git en ligne. Pour cela, vous allez utiliser le service en ligne GitHub.

  • Créez un nouveau dépôt (repository) sur votre compte GitHub dont le nom sera projet_python.

  • Sur votre machine, ajoutez ce dépôt GitHub distant (git remote add) en le nommant origin (nom communément utilisé pour un dépôt distant stockant la version de « référence » d’un projet git).

  • Envoyez vos travaux locaux vers le dépôt distant (git push). Si vous avez des soucis avec l’authentification, consultez votre enseignant.

  • Rajoutez, en commentaire, vos nom et prénom dans votre fichier Python, et validez cette modification par un commit.

  • Vérifiez l’état actuel de votre dépôt git : que remarquez-vous ?

  • Vérifiez maintenant l’état du dépôt sur GitHub : votre dernier commit y est-il visible ? Pourquoi ?

  • Synchronisez les versions locale et distante de votre projet.

  • Vérifiez que tous vos commits locaux sont maintenant visibles sur GitHub.

Travail à partir d’un projet Python hébergé sur GitHub#

Résumé du scénario

Vous allez cette fois-ci partir d’un projet hébergé sur GitHub, en créer une copie locale et le modifier à votre guise.

Cloner un dépôt GitHub via l’interface graphique de VS Code

Avant de débuter cette partie, fermez le projet précédent dans VS Code (menu « Fichier » → « Fermer le dossier »). Ensuite, clonez le projet rtavenar/wikipedia_scrapping dans votre dossier tutoriel_git. Pour cela :

  1. Ouvrez la palette de commandes avec la combinaison de touches Ctrl + Maj + P.

  2. À l’invite de la palette de commandes, entrez « Git clone », puis appuyez sur Entrée.

  3. Quand vous êtes invité à fournir l’URL du dépôt, sélectionnez « Cloner depuis GitHub », puis appuyez sur Entrée.

  4. Si vous êtes invité à vous connecter à GitHub, effectuez le processus de connexion.

  5. Entrez rtavenar/wikipedia_scrapping dans le champ URL du dépôt.

  6. Sélectionnez le dossier local tutoriel_git pour cloner le projet à l’intérieur de ce dossier.

  7. Quand vous recevez la notification vous demandant si vous voulez ouvrir le dépôt cloné, sélectionnez « Ouvrir ».

De manière générale, pour cette partie, vous êtes libre de continuer à utiliser le terminal pour entrer vos commandes git ou d’utiliser l’interface graphique de VS Code qui contient un onglet « Contrôle de code source » repérable par l’icône

  • Exécutez ce fichier wikipedia.py.

  • Remarquez le fichier info_energie.pick qui a été créé par l’exécution du programme. Est-il utile d’en garder trace dans votre dépôt git à votre avis ? Si non, faites en sorte que ses modifications ne soient pas suivies par git.

  • Créez un commit pour valider cette modification.

  • Tentez d’envoyer vos changements locaux vers le dépôt origin. Que remarquez vous ?

  • Créez un nouveau dépôt (repository) sur GitHub et envoyez votre dépôt local vers ce dépôt. Vérifiez que le fichier info_energie.pick n’a pas été envoyé.

  • Modifiez le fichier wikipedia.py pour qu’il contienne vos noms et prénoms en commentaires en début de fichier, puis effectuez un commit pour enregistrer cette modification. Ce dernier commit est-il visible sur GitHub ?

  • Poussez tous les commits récents vers votre dépôt GitHub.

  • Ajoutez quelques commentaires inutiles dans le code, sans créer de commit pour autant.

  • Finalement, ces commentaires ne vous satisfont pas : utilisez git pour restaurer le fichier wikipedia.py dans la version dans laquelle il était au dernier commit enregistré .

  • Avec du recul, vous vous dites que l’ajout de vos noms dans le fichier wikipedia.py n’est pas vraiment nécessaire lui non plus : utilisez git pour revenir au commit précédant l’ajout de ces commentaires et poussez ces modifications vers le dépôt origin (git revert).

  • Constatez l’effet de ces modification sur l’historique des commits du dépôt GitHub (cet historique est accessible en cliquant sur le nombre de commits dans l’interface GitHub de votre dépôt).