5  Configuration de git pour SK8

Cette section présente l’utilisation du logiciel de versionning Git et l’accès à l’instance Gitlab INRAE forgemia.inra.fr.

Les sections suivantes vont vous montrer comment :

5.1 Connexion à l’instance GitLab de la forgemia

Tout agent de la fédération RENATER peut se connecter au Gitlab de la forgemia. Il suffit pour cela de choisir son établissement puis de se connecter avec ses identifiants LDAP : forgemia.inra.fr.

Pour les personnes hors ESR, il est possible d’envoyer un email au support forgemia afin qu’un compte CRU soit créé: support-forgemia@inrae.fr.

5.2 Installation du logiciel git

Pour pouvoir utiliser GitLab (ou Github …), il faut que le logiciel de versioning Git soit installé sur votre poste de travail.

Vous pouvez télécharger le logiciel à l’adresse https://git-scm.com/downloads, puis l’installer en suivant les instructions.

Vous pouvez installer le logiciel via :

sudo apt-get update
sudo apt-get install git

Afin de pouvoir faire le lien entre votre poste de travail et GitLab, vous devez ensuite :

  1. Configurer votre email dans Git sur votre poste de travail
# Je configure l'email que j'utilise pour me connecter a forgemia
git config --global user.email 'monmail'

# Je vérifie si la config est OK
git config --list
A propos de votre email

Vous devez configurer Git avec l’adresse email utilisée pour vous connecter à forgemia.inra.fr, sinon, cela ne fonctionnera pas.

  1. Créer une clé SSH (cf. la section suivante).

5.3 Création d’une clé SSH

Il est nécessaire de créer une clé SSH publique afin de connecter votre poste de travail à votre compte GitLab sous la forgemia. Cette clé SSH est le protocole de liaison entre git en local et GitLab, il est possible d’utiliser le protocole HTTP, mais nous recommandons plutôt le SSH.

Pour les utilisateurs de Rstudio, il est possible de créer cette clé directement dans Rstudio, dans les Paramètres globaux. Sélectionner dans la barre d’outils Tools -\> Global options... -\> Git/SVN, la fenêtre suivante s’ouvre:

Créer une clé SSH sous Rstudio
  • Vérifier que Git soit indiqué dans “git executable”.
  • Créer une clé RSA key, en cliquant sur le bouton “Create RSA key”.
  • Lorsqu’elle est générée, copier la clé. Pour la faire apparaitre, cliquer sur “View public Key”.

Vérifier que vous ne possédez pas déjà d’une pair de clé. Regarder dans le dossier /home/<utilisateur>/.ssh/ , vous devez avoir deux fichiers du même nom dont l’un a une extension en .pub .

Pour les utilisateurs linux/Mac OS, vous pouvez aussi créer votre clé SSH directement dans une console avec la commande suivante (plus d’information sur le site de GtiLab:

ssh-keygen -t ed25519 -C "<commentaire>"

ou

ssh-keygen -t rsa -b 2048 -C "<commentaire>"

L’invite vous demandera où stocker la clé (dans un répertoire .ssh à créer s’il n’existe pas déjà):

Générer une paire de clés RSA publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/user/.ssh/id_rsa) :

Quand il vous est demandé le passphare faire Entrer pour ne pas l’utiliser (sinon vous devrez vous en rappeler et le renseigner à chaque utilisation). Vous pouvez afficher votre clé publique afin de la copier pour l’étape suivante:

cat .ssh/id_rsa.pub

Il faut alors coller cette clé publique dans les paramètres de votre compte GitLab sous la forgemia:

  • Cliquer sur votre avatar en haut à droite lorsque vous êtes loggué sur forgemia.inra.fr puis sur Edit profile,
  • Dans le menu à gauche de la page des settings, cliquer sur SSH Keys,
  • Coller votre clé SSH dans la partie “Key” puis cliquer sur le bouton Add key.

Vous pouvez vérifier la connection SSH entre Rstudio et GitLab avec la commande suivante:

ssh -T git@forgemia.inra.fr

Si vous obtenez le message suivant, c’est que tout va bien:

Welcome to GitLab, @<votre_nom>!

5.4 Travail en local avec le dépôt

5.4.1 Récupération (clone) du dépôt git

Après validation de votre demande d’hébergement d’application sur SK8, un dépôt pré-configuré vous sera créé, que vous devrez récupérer en local (cloner) avant de le modifier et y transférer votre application.

Il vous faut d’abord récupérer l’URL de votre dépôt Git depuis la page du dépôt, en cliquant sur le bouton clone :

Copier l’URL dans Clone with SSH.

Voici ensuite comment cloner un dépôt git :

Lancer la commande git clone en mettant l’URL de votre repo GIT :

git clone git@forgemia.inra.fr:usernameMasterRepository/repoName.git

Pour pouvoir ensuite utiliser git depuis RStudio, il vous faudra créer un projet R : depuis RStudio : File > New projet > Existing directory et ne pas oublier de cocher Open in new session en bas à droite. Vous pouvez maintenant fermer RStudio puis réouvrir votre projet soit en cliquant sur le fichier .Rproj qui a été créé, soit en lançant la commande rstudio monprojet.Rproj.

Ceci est facultatif si vous continuez d’utiliser git en ligne de commande.

Dans Rstudio directement, création d’un projet versionné:

  • Cliquer sur File -> New Project... -> Version Control dans la fenêtre pop-up qui apparaît, puis Git dans la suivante,

  • Coller le chemin, au format SSH, dans la ligne Repository url, puis, choisir l’emplacement de votre nouveau projet versionné en cliquant sur le bouton Browse... :

Créer un projet versionné sous Rstudio
  • Cliquer sur le bouton Create Project, cela initialisera votre projet en ouvrant une nouvelle fenêtre Rstudio récupérant tous les fichiers présents dans le repository importé.

5.4.2 Les commandes push/pull/commit de Git

Git peut s’utiliser:

Ouvrir un terminal dans le dossier contenant le dépôt versionné avec l’instance GitLab de forgemia :

  • Récupérer la dernière version du dépôt : git pull
  • Faire les modifications dans les fichiers
  • Créer un commit des fichiers que vous avez modifiés/créés :
    • vérifier les noms des fichiers modifiés : git status
    • préparer le commit:
      • git add [nomDuFichier] ou
      • git add . (pour indiquer tous les fichiers)
    • commit: git commit -m "j’explique mon commit"
  • Mettre en ligne les modifications : git push
  • Ouvrir le dossier avec Rstudio (cliquer sur le fichier .Rproj).

  • Récupérer la dernière version du dépôt (pull) :

  • Faire les modifications dans les fichiers dans RStudio

  • Créer un commit des fichiers que vous avez modifiés/créés :

    • Dans la fenêtre qui s’ouvre :
      • vérifier les noms des fichiers modifiés et les modifications
      • pour ajouter (add) les fichiers cliquer sur la checkbox correspondante
      • mettre un message de commit
      • cliquer sur commit
  • Mettre en ligne les modifications avec un push

Voici quelques supports pour vous accompagner dans l’utilisation de Git :

5.5 Contenu du dépôt

Les 2 images ci-dessous présentent un exemple de dépôt créé sur l’instance gitlab de la forgemia puis cloné sur un poste en local.

Dans un premier temps, voici le dépôt sur Gitlab :

Dépôt sur GitLab

Ensuite, voici ce même dépôt cloné puis ouvert dans Rstudio :

Dépôt cloné en local ouvert dans Rstudio