Important
Attention, les captures d’écran faites sur GitLab proviennent d’une ancienne version de la forgeMIA. Cela ne devrait pas géner la compréhension et la bonne lecture des supports.
Les supports seront mis à jour au moment du passage à la forge institutionnelle.
Nous avons vu :
l’intérêt de l’usage d’un outil comme Git
les différents états d’un dépôt local
les commandes principales selon 3 modes :
git init)git status).gitignore)git add)git commit)git log)git restore, git reset)git diff)Il est nécessaire d’avoir suivi la session 1 ou de connaître les commandes de base de Git.
Pratique
Choisissez un projet :
Vous pouvez faire des modifications, commiter les modifications, parcourir l’historique… en ligne de commande, avec RStudio ou avec VS Code.
Les états du système de fichiers avec un repo distant :
GitLab est un logiciel libre développé par GitLab Inc. et utilisé sur la forge commerciale GitLab.Com
Forge majoritaire dans les installations au sein de l’ESR hal-04098702.
Définition
Une forge est une plateforme web simplifiant la mise en oeuvre de bonnes pratiques et facilitant le développement de logiciels de meilleure qualité, ainsi que la constitution de communautés de contributeurs et d’utilisateurs.
Une forge intègre :
Pour les agents INRAE
forge.inrae.fr est une forge mise en place pour tout INRAE utilisant le logiciel GitLab, dans sa version Community Edition (CE).
Pour les étudiants et personnel de recherche UB
https://gitub.u-bordeaux.fr/est une forge mise en place par l’université de Bordeaux
SSH (Secure Shell) est un protocole réseau qui permet de :
Une paire de clés SSH est composée d’une clé privée et d’une clé publique.
Plus d’informations sur la page SSH de GitLab.
Ouvrir un terminal de commande
Taper la commande suivante
Ne pas rentrer de mot de passe (optionnel)
Copier la clé publique qui est générée dans le fichier ~/.ssh/id_ed25519.pub (avec la commande précédente)
Tools > Global Options > Git/SVNCreate SSH keyCreate et RStudio va générer une paire de clés à l’emplacement indiquéTODO
Git-Gui est installé sous Windows avec Git.
Menu Help > Show SSH keys
Important
~/.ssh/id_ed25519).Edit Profil, 2) SSH Keys, puis cliquer sur Add new key
Aller sur la page d’accueil (cliquer sur le logo GitLab en haut à gauche) et cliquer sur le bouton “New project”.
Pour mettre sur GitLab un dépôt créé sur votre machine, cliquer sur “Create blank project”.
On détermine le nom du projet (1) et son URL (2 et 3)
(1) : On détermine la visibilité du projet (accès restreint, accès à tous les utilisateurs authentifiés, ou public).
(2) : Pour avoir un projet vide, ne pas créer de README.
Création d’un projet vide dans GitLab
Un projet sur GitLab contient :
Important
Dans la suite de la présentation, les lignes de commande <namespace> et <projet> sont à remplacer par une valeur dépendante de votre contexte.
<projet>.git qui devra être remplacé par mon_projet.git si le projet s’appelle “mon_projet” !
Remarque
Les commandes sont affichées sur la page d’accueil du projet, lors de la création d’un dépôt vide. 3 cas :
Important
Assurez-vous de toujours utiliser les adresses de vos projets sous la forme suivante : (pas de https)
git@forge.inrae.fr:<namespace>/<projet>.git
Lors de la première communication SSH avec le serveur, ce message apparaîtra :
The authenticity of host 'forge.inrae.fr (147.100.165.25)' can't be established.
ED25519 key fingerprint is SHA256:eAAb7qrQGTT3kY6Iy5PXsVkd2YMxwK5VZlv0Cls63Vk.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Confirmer l’authenticité du serveur en tapant yes.
Si la clé n’est pas trouvée par git (problème rencontré suite à la génération d’une clé SSH par Git-Gui sur un poste Windows : sous VS Code le chemin de la clé recherché par git n’est pas le bon), configurer :
git config core.sshCommand "ssh -i ~/.ssh/id_ed25519"Cloner le dépôt distant en local avec
Le dossier projet est créé en local et contient les fichiers du dépôt distant
Pour cloner un dépôt existant il faut créer un nouveau projet R et renseigner l’adresse SSH disponible dans le dépôt GitLab.
Après Create Project le dépôt GitLab sera disponible en local sur votre machine.
Il n’y a pas de menu pour cloner un dépôt. Utiliser la ligne de commande.
Pour connaître la version de Git : git --version.
# À faire une fois (fait dans la session 1) :
# pour que la branche principale s'appelle toujours main quand on initialise un dépôt Git
git config --global init.defaultBranch main
# Créer un dépôt local
## on se place dans le dossier pour lequel on souhaite versionner
cd <projet>
## on initialise le dépôt Git
git init
## on réalise un commit d'initialisation
git add .
git commit -m "Initial commit"En cas d’erreur sur la commande git init, voir l’onglet Version de Git < 2.28.0.
Les mêmes commandes sont disponibles sur la page d’accueil du projet GitLab, si celui ci est vide.
Synchronisation d’un dépôt local sur la forge
Envoyer un projet local sur le dépôt GitLab que vous venez de créer.
Clonage d’un projet disponible sur GitLab
Cloner sur votre machine le dépôt situé à cette adresse.
Où comment s’y retrouver au milieu de toutes ces informations…
mainREADME.mdUne section dédiée est prévue un peu plus loin.
La majorité des options par défaut est adaptée.
On peut ajouter un logo et une description au projet dans Settings > General.
Par défaut seul le créateur du dépôt peut réaliser des modifications (commit).
Si dans le cadre d’une collaboration vous souhaitez travailler avec d’autres personnes il suffit de les ajouter comme membres de votre dépôt.
Les personnes qui auront accès à votre dépôt peuvent avoir différents rôles selon leur degré d’investissement dans le projet :
Attention
Donner le rôle d’owner à un membre lui laissera le droit de pouvoir le projet et son dépôt…
Pour inviter d’autres utilisateurs à contribuer au projet, il faut les inviter :
Pour configurer le statut du membre :
Lorsqu’un utilisateur n’est pas connu de la forge, il faut lui demander de faire une première connexion sur l’adresse de la forge, avec son identifiant LDAP.
Il est alors connu de la forge et vous pouvez l’ajouter sur le projet.
Inviter un membre sur un projet
Invitez au moins une personne présente aujourd’hui à la formation sur votre projet personnel.
Ajoutez là en tant que reporter (ça suffira pour aujourd’hui).
Une issue est comme un ticket et permet de :
Plus d’informations sur les issues.
Pour créer une issue : Issues > New Issue
Les paramètres d’une issue :
Titre
Le titre permet d’avoir une vision rapide du problème ou de l’idée sur laquelle porte l’issue.
Type (ticket ou incident)
Incident : ticket modifié pour guider la résolution d’un incident, qualifié par sa gravité (inconnue… critique), son état (ouvert… résolu)
Description
Possibilité de sélectionner un modèle de description. La description permet de décrire en profondeur l’idée ou le problème rencontré. C’est le corps de l’issue.
Elle s’écrit en Markdown, voir Écrire en Markdown, Markdown dans GitLab.
Personne assignée / Assignee
Facultatif. Permet d’assigner une/des personnes qui sera/seront à même de résoudre l’issue.
Jalon / Milestone
Pour planifier la réalisation d’une tâche.
Date d’échéance / Due date
Pour indiquer une date butoir.
Labels
Permet de :
Pour créer un label :
Commentaires sur un ticket
Un ticket peut être commenté par les personnes ayant accès au projet (voir configuration du projet et gestion des membres).
Scénario 1
Sur votre projet, déclarez un bug :
bugScénario 2
Sur le projet sur lequel vous avez été invité, proposez une nouvelle idée d’amélioration :
nouvelle fonctionnalitégit statusgit pull (synchronisation du dépôt local).Où éditer ses fichiers ?
git pull avant les premières modificationsL’univers des branches !
git branch)git merge)git rebase)Formation Git / GitLab − Session 2 : GitLab et dépôt distant