Versionner facilement vos scripts R avec git

Travailler de manière reproductible est une compétence indispensable aujourd’hui. Et parmi l’ensemble des choses que l’on peut mettre facilement en place pour travailler de manière reproductible avec R et RStudio, il y a le versionnage de nos scripts, en local,  avec l’outil git.

Le versionnage des scripts a deux grands avantages :

 Le premier est de garder une trace de toutes les modifications importantes réalisées au cours du développement de nos analyses, et de les visualiser facilement.  Dans l’exemple ci-dessous, la partie rouge correspond à du code supprimé entre deux versions de mon script, la partie verte correspond à du code ajouté entre ces deux versions, et la partie grise correspondent à du code inchangé.

commit git rstudio

Le second avantage est de ne conserver qu’un seul fichier, à la place de multitudes versions qui s’accumulent à la racine de votre projet R (ou dans votre dossier “script”),  comme “mon_super_script_V1”, “mon_super_script_V2″, ….”mon_super_script_v376”, ou encore “mon_super_script_v19mai2022_13h”, etc..etc…

 

Dans cet article, je vais vous montrer en pas à pas, comment installer git, comment le coupler à R Studio, et comment l’utiliser.

Table des matières

Comment installer git ?

C’est très simple ! Il suffit de se rendre sur la page Download de l’outil Git,  de choisir son système d’exploitation, et de télécharger l’application.

Il faudra ensuite, bien évidemment, l’installer (en double cliquant sur le fichier exécutable téléchargé).

Comment coupler git à RStudio ?

Etape 1 : relier git et RStudio

Dans RStudio –> Menu Tools (tout en haut) –> Global Options –> menu Git /SVN –> Create RSA Key 

Coupler Git et RStudio

Vous allez obtenir un message vous demandant l’autorisation de redémarrer RStudio, dites oui !

Au redémarrage de RStudio, des éléments “Git” vont apparaitre : 

Nouveaux éléments git

Etape 2 : configurer git

Dans le terminal de R Studio écrivez les commandes suivantes, en remplaçant par vos informations, évidemment. Vous ne pouvez pas faire de copier-coller !  

git config --global user.name 'Jane Doe'
git config --global user.email 'jane@example.com' 

Voici ce que cela donne : 

Etape 3 : Inclure git dans un nouveau projet R

Comme je l’ai déjà expliqué de nombreuse fois, vous devez travailler en projet R. Lorsque vous allez créer un nouveau projet R, vous aurez alors le choix d’inclure git à ce projet. Pour cela, cochez la casse “Create a git repository”

 

Inclure git dans un projet R

Vous aurez également la possibilité d’utiliser le package renv pour gérér vos packages.

Etape 3 bis : Inclure git dans un projet déjà existant

Pour cela, allez dans le menu Tools ==> Project Option ==> Git/SVN et choisissez git comme Version control system ==> OK

Ajouter it

Comment utiliser git ?

Versionnez votre script

Là aussi, c’est assez simple. Pour cela:

1. Créez un nouveau document .R ou .Rmd : File ==> New File ==> R Script ou R Markdown

2. Ecrivez quelques lignes.

code langage R

3. Sauvez le (File ==> Save As…)
4. Allez dans l’onglet Git, et cochez la case correspondant à votre script (c’est pour dire à Git que c’est ce document que vous voulez  versionner)
5. Cliquez sur commit ( on peut le traduire par “enregistrement”)

accéder à la fenêtre de versionnage

6. Inscrivez un message de commit, qui correspond au pourquoi de cette version. Par exemple pour un premier commit (enregistrement), on peut écrire “commit1”. Si c’est parce que vous avez ajouté un nouveau plot vous pouvez écrire “ajout boxplot par espèce” par exemple.

Versionnage du code initial

7. Reprenez votre script et modifiez le. Supprimez des lignes, ajoutez en de nouvelles:

modification du code initial

8. Refaites les étapes 3 à 6 : Sauvez ==> git ==> sélectionnez ==> commit, écrivez un message de commit.

visualisation des modifications de code

Remarque : A cette étape, vous pouvez visualiser les différences de code avec la version (commit) précédente.

Accédez aux différentes versions de votre script

1. Allez dans l’onglet Git, puis cliquez sur commit

2. Allez dans l’onglet History de la fenêtre de commit

Accéder aux différentes version du code

Dans la partie haute de la fenêtre, vous pouvez voir l’historique des commits (le plus ancien en bas, le plus récent en haut).

Dans la seconde partie, vous pouvez voir les modifications entre la version choisie (dans la parie haute, vous pouvez cliquer sur les différentes versions) et la précédente, avec : 

  • des parties grises qui correspondent à du code identique.
  • des parties  rouges correspondent à du code supprimé.
  • des parties vertes qui correspondent à du code ajouté.

Et en cliquant sur View File @…. vous accéderez au code de la version considérée.

Bon, ben je crois que vous n’avez plus d’excuse pour ne pas vous mettre au versionnage de vos scripts.  😉 Essayez, vous verrez, c’est très pratique ! Dans un futur article, je vous montrerai comment utiliser Git en remote, avec GitHub.

Si cet article vous a plu, ou vous a été utile vous pouvez soutenir le blog, en réalisant un don libre sur sa page Tipeee.

Poursuivez votre lecture

2 réponses

  1. Bonjour,
    Merci pour ce tuto qui m’a fait découvrir cette possibilité d’inclure Git. Je n’arrive cependant pas à désigner un noeud comme point de départ d’une nouvelle branche. Est-ce possible ? Si oui comment ? Ou plus simplement, est-il possible de désigner comme master une version antérieur pour pouvoir repartir de cette version là ? Merci d’avance pour votre réponse.

    1. Bonjour,

      mes connaissances de git sont assez limité, je ne saurais pas vous répondre….
      Bonne continuation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bonjour !

vous venez souvent ?

Identifiez-vous pour avoir accès à toutes les fontionnalités !

Aide mémoire off'R ;)

Enregistrez vous pour recevoir gratuitement mes fiches “aide mémoire” (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.