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 :
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 (~/.ssh/id_ed25519.pub
) qui est générée ou retenir le chemin d’accès à la clé
Tools
> Global Options
> Git/SVN
Create SSH key
Create
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 Profile
, 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@forgemia.inra.fr:<namespace>/<projet>.git
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.
# on se place dans le dossier pour lequel on souhaite versionner
cd <projet>
# on initialise le dépôt Git en indiquant que la branche principale doit s'appeler main
git init --initial-branch=main
# on synchronise notre dépôt git avec le dépôt GitLab
git remote add origin git@forgemia.inra.fr:<namespace>/<projet>.git
# on réalise un commit d'initialisation
git add .
git commit -m "Initial commit"
# on pousse les modifications vers le dépôt distant
git push -u origin main
Les mêmes commandes sont disponibles sur la page d’accueil du projet GitLab, si celui ci est vide
En cas d’erreur sur la commande git init
, voir l’onglet Version de Git < 2.28.0.
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.
Où comment s’y retrouver au milieu de toutes ces informations…
main
README.md
Une 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 supprimer le 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 ForgeMIA, 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
Si il existe, permet de sélectionner un template d’issue.
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 :
Assignation
Facultatif. Permet d’assigner une/des personnes qui sera/seront à même de résoudre l’issue.
Labels
Permet de :
Pour créer un label :
Scénario 1
Sur votre projet, déclarez un bug :
bug
Scénario 2
Sur le projet sur lequel vous avez été invité, proposez une nouvelle idée d’amélioration :
nouvelle fonctionnalité
Utiliser le Shell (Tools
> Terminal
> New Terminal
) avec la ligne de commande.
Transférer :
Transférer une étiquette depuis un dépôt local :
Transférer toutes les étiquettes depuis un dépôt local :
Supprimer
Supprimer une étiquette sur un dépôt distant :
Aide
> Afficher toutes les commandes
ou utiliser le raccourci F1
ou Ctrl+Maj+P
.Git: Push Tags
Entrée
ou utiliser le Terminal avec la ligne de commande.
git status
git 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