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 :
forgemia.inra.fr
est une forge mise en place par le département MIA (désormais MathNum) utilisant le logiciel GitLab, dans sa version Community Edition (CE).
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/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 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@forgemia.inra.fr:<namespace>/<projet>.git
Lors de la première communication SSH avec le serveur, ce message apparaîtra :
The authenticity of host 'forgemia.inra.fr (147.100.164.13)' 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.
# on se place dans le dossier pour lequel on souhaite versionner
cd <projet>
# on associe notre dépôt local avec le dépôt distant sur la forge
git remote add origin git@forgemia.inra.fr:<namespace>/<projet>.git
# 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.
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…
main
README.md