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 :
- Vous connecter à l’instance Gitlab de la forgemia,
- Installer Git,
- Configurer votre poste de travail avec Gitlab (créer une clé SSH),
- Utiliser les commandes de bases de Git en lignes de commande ou avec Rstudio.
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 :
- 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
Vous devez configurer Git avec l’adresse email utilisée pour vous connecter à forgemia.inra.fr, sinon, cela ne fonctionnera pas.
- 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:
- 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, puisGit
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 boutonBrowse...
:
- 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:
En ligne de commandes
Avec un logiciel dédié graphique, tel que gitKraken, doc gitKraken_gitlab, GitAhead… liste complète
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]
ougit add .
(pour indiquer tous les fichiers)
- commit:
git commit -m "j’explique mon commit"
- vérifier les noms des fichiers modifiés :
- 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
- Dans la fenêtre qui s’ouvre :
Mettre en ligne les modifications avec un
push
Voici quelques supports pour vous accompagner dans l’utilisation de Git :
- https://training.github.com/downloads/fr/github-git-cheat-sheet.pdf (en français)
- https://about.gitlab.com/images/press/git-cheat-sheet.pdf (en anglais)
- https://gitexplorer.com/ (un site web d’apprentissage interactif de git, en anglais)
- https://happygitwithr.com/troubleshooting.html
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 :
Ensuite, voici ce même dépôt cloné puis ouvert dans Rstudio :