Pratiquer Git avec les outils suivants :
Pourquoi aurait-on besoin de Git ?
Généralement, les diapos seront construites avec 3 onglets permettant de faire le lien avec les outils suivants :
Un logo est présent sur chaque diapo pour rappeler de quel mode il s’agit.
sudo apt-get install gitImportant
Nous ne parlerons pas de l’interface graphique Git-Gui directement installée au moment du téléchargement de Git.
D’abord installer R :
Puis RStudio :
Ouvrir un terminal et saisir les commandes en les adaptant :
# Définir votre identité qui sera associée à vos validations Git
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
# En avance pour la Session 2, définir le nom de la branche principale en accord avec la forge et les derniers usages
git config --global init.defaultBranch mainPrérequis : disposer d’un dossier dans lequel on peut écrire.
Pour un dossier vide, on crée un dossier “mon_projet” :
Pour un dossier contenant déjà des fichiers, on se place dans le dossier :
Prérequis : travailler dans un projet RStudio (Documentation RStudio).
Créer un projet
Ouvrir un projet existant
Initialiser un dépôt Git “local” pour suivre les fichiers du dossier “mon_projet” :
Un dossier .git est créé dans mon_projet. C’est là que Git stocke les informations dont il a besoin.
Consulter son contenu dans un terminal
Ne pas essayer d’éditer les fichiers du dossier .git.
Lors de la création d’un projet :
Ou lancer la commande git init dans le terminal.
Après actualisation de RStudio, Git est désormais intégré à RStudio.
Ne pas essayer d’éditer les fichiers du dossier .git.
Dans VS Code, sur le dossier à suivre :
Un dossier .git est créé, c’est là que Git stocke les informations dont il a besoin.
Contrôler en ouvrant un terminal et en vérifiant la présence d’un dossier .git.
Ne pas essayer d’éditer les fichiers du dossier .git.
Création d’un dépôt Git local
.git a été crééIl est souvent très utile de faire le point sur les évolutions en cours :
Il s’agit donc de connaître le statut du dépôt.
Important
Cette commande est importante à assimiler. Au moindre doute, on doit avoir le réflexe de l’utiliser !
L’onglet Git de RStudio vous permet de connaître l’état du dépôt rattaché à votre projet :
On voit dans l’interface que le fichier .gitignore n’est pas encore suivi par Git : icône orange avec un “?” et état “untracked”.
L’outil “Source Control” permet de connaître l’état du dépôt rattaché au dossier :
On voit donc que :
.gitignoreLe fichier .gitignore permet de préciser quels fichiers et dossiers doivent être ignorés par Git.
Pour cela, on utilise des modèles (ou patterns) et des noms de fichiers et dossiers explicites :
*~
*.bak
*.txt
ce_fichier_a_ignorer.data
/logs/
temp/
.vscode
Il est possible de créer d’autres fichiers .gitignore dans des sous-dossiers de votre projet.
Par défaut, le fichier .gitignore est à créer à la racine de votre projet :
.gitignore est automatiquement créé au moment de l’initialisation de Git dans le projet. Par défaut il contient les fichiers suivants :.Rproj.user
.Rhistory
.RData
.Ruserdata
Des exemples de fichiers sont disponibles sur différents sites web, tels que
Un commit permet :
Chaque “commit” dispose d’un identifiant unique, géré par Git, et de métadonnées associées (date, auteur, message…).
Les fichiers des dossiers peuvent être dans quatre états :
.gitPour créer un commit, il faut commencer par avoir quelque chose à commiter.
On va donc créer un fichier vide ou travailler avec un fichier déjà existant :
Ensuite, il faut désigner les fichiers qui vont faire l’objet du commit :
Finalement, on déclenche l’opération de commit, avec un message pertinent :
À ce stade, le fichier mon_fichier.txt est enregistré dans les fichiers suivis par Git.
Pour créer un commit, cliquer sur le bouton “Commit” (ou Ctrl+Alt+M) :
Une fenêtre s’ouvre permettant de voir les fichiers non suivis ou les fichiers avec des modifications :
Pour créer un commit contenant le fichier .gitignore :
.gitignore.gitignore au dépôtPour créer un commit, il faut commencer par avoir quelque chose à “commiter”. On va donc créer un fichier
Constatez que le fichier est proposé en vert (add) dans “Source Control”
Finalement, on déclenche l’opération de commit (2), après avoir saisi un message d’accompagnement (1) puis “Ctrl Enter” ou on clique sur la case à cocher dans l’onglet “Source control”
À ce stade, le fichier mon_fichier.txt est enregistré dans les fichiers suivis par Git.
Si une erreur survient avec le message suivant :
C’est que votre identité n’est pas connue de Git (les commit sont signés par des auteurs).
On peut ensuite relancer le commit.
Ajout d’un fichier de code au dépôt
.R.git status ou via l’interface de votre IDE.Ignorer les fichiers avec l’extension .data
.gitignore..data.git status ou via l’interface de votre IDE.test.data avec un contenu quelconque et constater qu’il n’est pas proposé au suiviBonnes pratiques pour les commits
Mauvaises pratiques pour les commits
Messages de commit :
Update code.rPetit rajoutCode réparéPratique
Prendre le temps de faire quelques commits supplémentaires en ajoutant/modifiant des fichiers sur le dépôt.
Pour voir l’historique des commits sur un dépôt, on peut utiliser les commandes suivantes :
On peut afficher les modifications du commit correspondant à un hash particulier
Dons l’onglet Git de RStudio, il y a un bouton “History”.
Ce bouton permet d’accéder à l’historique du dépôt (tous les commits effectués dessus) :
En sélectionnant un commit, on peut voir les informations qui le concernent :
Il est aussi possible de voir un fichier tel qu’il était suite à un commit particulier :
On peut alors parcourir un “instantané” du fichier :
Si l’on souhaite récupérer cet instantané, on peut l’enregistrer comme fichier :
Pour voir l’historique des commits sur un dépôt
Nécessite d’avoir l’extension “Git history” installée
En cliquant sur une ligne de l’historique on peut accéder aux détails du commit
Git dans VS Code permet aussi aussi de suivre les suppressions et renommages de fichiers
Dans cette section :
git add, ni git commit).git add) mais non commitées (pas de git commit)Modifier un fichier sans faire de commit sur les modifications mais penser à sauvegarder le fichier :
On peut aller dans l’interface de commit pour voir les modifications :
Si l’on souhaite supprimer toutes les modifications non commitées, on peut faire un clic droit sur le fichier concerné et les annuler avec “revert” :
Attention
Attention, c’est tout ce qui a été modifié dans le fichier depuis le dernier commit qui sera supprimé :
Modifier un fichier sans faire de commit sur les modifications mais penser à sauvegarder le fichier :
On peut aller dans l’interface de commit pour voir les modifications :
Si l’on souhaite supprimer toutes les modifications non commitées, on peut cliquer sur la flèche “discard changes” pour le fichier concerné :
Attention, c’est tout ce qui a été modifié dans le fichier depuis le dernier commit qui sera supprimé :
Ajouter les nouvelles modifications au commit précédent en passant par le terminal puis
Constatez qu’il n’y a pas de nouveau commit dans la liste dans l’historique.
Utiliser le menu déroulant du bouton Commit.
Annuler une modification
Tag en anglais
Fonctionnalité de Git : étiqueter un certain état dans l’historique comme important.
Exemple
On souhaite marquer les états de publication (v1.0 et ainsi de suite)
Deux types principaux d’étiquettes :
Attention
L’interface RStudio ne permet pas de créer d’étiquette, il faut passer par la ligne de commandes.
Lister les étiquettes existantes (par ordre alphabétique) :
v0.1
v1.3
Rechercher les étiquettes correspondant à un motif particulier
v1.3
Pour créer une étiquette légère :
Pour la visualiser :
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
Pour créer une étiquette annotée :
Pour la visualiser :
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
ma version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
Pour mettre le dépôt dans l’état pointé par une étiquette.
Important
Votre dépôt sera dans un état « HEAD détachée ».
Si vous modifiez puis créez un commit, l’étiquette restera identique, mais votre nouveau commit n’appartiendra à aucune branche et sera non joignable, à part avec son empreinte de commit exacte.
Lister les étiquettes existantes : dans le menu, cliquer sur Basculer sur…
… et choisir parmi les étiquettes proposées
Rechercher les étiquettes correspondant à un motif particulier
Important
VS Code ne propose que des étiquettes annotées. Il faut utiliser la ligne de commande.
Tip
On peut cependant ne saisir que le nom de l’étiquette et taper enter pour les autres informations demandées et ainsi créer une étiquette légère.
Pour créer une étiquette annotée : dans le menu, cliquer sur Étiquettes > Créer une étiquette.
Important
VS Code ne propose pas de visualiser les données d’une étiquette. Il faut utiliser la ligne de commande.
Dans le menu, cliquer sur Étiquettes > Supprimer l’étiquette.
Pour se positionner sur une étiquette particulière, après avoir cliqué dans le menu sur Basculer sur…, choisir l’étiquette.
L’extension GitLens disponible dans VS Code propose un accès direct aux fonctionnalités de création d’étiquette et à la liste des étiquettes disponibles
Utiliser l’étiquettage
Utilisation du package saperlipopette, 12 exercices pour prendre confiance avec les commandes de Git :
.gitignore :Formation Git / GitLab − Session 1 : initiation à Git
Comment utiliser Git ?