Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici

Travailler avec un dépôt distant sur GitLab

Introduction

Dans le chapitre précédent, nous avons examiné le fonctionnement de Git et nous avons appris comment l’utiliser localement. Dans les pages qui suivent, nous allons explorer comment interagir avec un dépôt distant sur GitLab en utilisant Git.

En un premier temps, nous aborderons les opérations essentielles telles que le clonage, les commandes permettant de mettre à jour un dépôt local ou d’envoyer des modifications vers GitLab. Comme cette plateforme est construite autour de Git, nous verrons certaines fonctionnalités graphiques qui optimisent l’utilisation de ce système de gestion de version et le rendent plus agréable à utiliser.

Nous en profiterons également pour découvrir les principales options d’édition offertes par GitLab. Au terme de ce chapitre, nous serons outillés pour organiser et suivre notre travail en ayant recours aux projets, aux groupes, aux tickets et aux requêtes de fusion (merge requests).

Interagir avec le dépôt distant d’un projet GitLab

Afin de pouvoir interagir avec un dépôt distant hébergé sur GitLab, nous allons commencer par créer un nouveau projet qui nous servira de dépôt de référence. 

Dans GitLab, un projet comprend toujours un dépôt Git, si bien que les deux termes sont souvent utilisés de manière interchangeable. Nous verrons toutefois dans le chapitre suivant que la notion de projet est beaucoup plus complexe et riche en fonctionnalités.

La section qui suit est consacrée plus spécifiquement à la portion Git d’un projet GitLab, c’est-à-dire à l’interaction avec un dépôt distant hébergé sur la plateforme. Nous allons commencer par créer un projet qui nous servira d’exemple tout au long de ce chapitre.

1. Créer un nouveau projet

Pour avoir accès à un dépôt distant sur GitLab, vous devez avoir un projet en ligne avec lequel vous pourrez interagir. Nous verrons qu’un dépôt peut être créé directement sur la plateforme ou à partir d’un dépôt local, mais il peut aussi être copié depuis un autre projet public.

Voici les étapes à suivre pour créer un dépôt sur GitLab :

 Connectez-vous à la plateforme et appuyez sur Projets dans la colonne de gauche, puis sur Créer un projet dans les options de la section du milieu....

Comprendre l’opération de clonage

Pour accéder et faire des modifications à un dépôt sur GitLab à partir de votre installation locale de Git, vous devez le cloner via SSH ou HTTPS pour en avoir une copie sur votre poste de travail. Comme nous l’avons déjà mentionné, il est plus simple et plus rapide de travailler en SSH parce que vous n’avez pas à entrer votre mot de passe à chaque fois, mais nous allons quand même présenter les deux méthodes.

Bien sûr, vous pouvez éditer les fichiers de votre dépôt directement sur la plateforme, mais ce n’est pas la manière la plus efficace de travailler, car l’interface graphique est plus lente comparativement à votre IDE ou votre terminal. GitLab n’offre pas d’autocomplétion et vous n’avez pas accès à des extensions ou des outils de débogage avancés comme c’est le cas dans VS Code, Atom ou IntelliJ IDEA.

Comme il peut être nécessaire d’éditer des fichiers directement sur la plateforme, nous présenterons plus loin quelques options qui peuvent vous être utiles si vous devez travailler en ligne.

1. Cloner un dépôt distant via SSH

Cloner un dépôt à partir de GitLab (ou de tout autre service similaire comme GitHub ou Bitbucket) consiste à créer une copie locale d’un projet hébergé sur une plateforme d’hébergement de code source.

Une fois le clonage terminé, vous pouvez naviguer dans le répertoire copié et commencer à travailler sur les fichiers comme si vous étiez le propriétaire du projet. Les modifications que vous apportez peuvent ensuite être « poussées » (push) vers GitLab pour les partager avec d’autres collaborateurs ou simplement pour conserver une copie de votre code source s’il s’agit d’un projet personnel. 

Pour effectuer cette opération, nous devons commencer par obtenir l’URL du dépôt à cloner. Voici comment procéder :

 Appuyez sur l’icône de GitLab pour revenir à la page d’accueil. Cliquez sur Projets, puis sélectionnez le projet que vous venez de créer.

images/04EI09.png

 Vous trouverez...

Comprendre les notions de « push » et « pull »

Dans Git, les commandes push et le pull sont les plus importantes lorsqu’il s’agit d’interagir avec un dépôt distant. Elles constituent des opérations essentielles pour le travail collaboratif et la synchronisation des données d’un projet partagé.

1. Faire un « push » des données vers un dépôt distant

La commande git push permet d’envoyer les modifications d’un dépôt local vers un dépôt distant, ce qui permet de partager les mises à jour avec d’autres collaborateurs ou simplement d’avoir une sauvegarde des données.

 Pour en faire l’essai, modifiez un dépôt local pour lequel vous avez une copie sur GitLab et modifiez un fichier en suivant le workflow habituel jusqu’au commit. Si vous avez configuré votre dépôt en SSH comme nous l’avons vu plus haut, il suffit d’exécuter la commande git push :

# Commande git push pour envoyer les modifications d'un dépôt 
local vers un dépôt distant 
$ git push 
Enumerating objects: 5, done. 
Counting objects: 100% (5/5), done. 
Delta compression using up to 12 threads 
Compressing objects: 100% (3/3), done. 
Writing objects: 100 % (3/3), 336 bytes | 336.00 KiB/s, done. 
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) 
To gitlab.com : tutoriels-gitlab/tuto-git.git 
   d50b0a3.. 83e3195 main -> main 

Si vous travaillez sur un projet collaboratif et que vous souhaitez « pousser » vos fichiers vers GitLab, vous verrez que Git vous demandera souvent de mettre à jour votre dépôt avant de faire un « push » si l’état du dépôt distant a changé par rapport à votre version.

Ignorer du contenu avec le fichier.gitignore

Dans le chapitre Fondamentaux de Git pour GitLab, nous avions créé un fichier .gitignore dont nous avions laissé la signification en suspens. C’est dans le contexte d’une opération git push que ce fichier est le plus souvent utilisé puisqu’il permet d’ignorer certains fichiers ou répertoires...

Utiliser les fonctionnalités Git de GitLab

Dans les dernières sections de ce chapitre, nous avons effectué certaines opérations qui nous ont montré comment Git fonctionne sur GitLab. De manière générale, il est plus simple (même préférable) de travailler localement avec Git, GitLab propose certains outils graphiques qui peuvent vous être utiles sous le menu Code du panneau latéral d’un projet.

1. Les options du menu Code

Le menu Code, comprend un certain nombre d’options qui permettent de visualiser des composants de votre dépôt comme Branches, Validations et Étiquettes.

Nous n’insisterons pas sur Dépôt qui vous ramène à la page principale de votre projet et Requête de fusions, une notion qui sera abordée dans le chapitre Organiser et suivre son travail dans GitLab.

a. Les branches

Si vous appuyez sur Branches, vous pouvez visualiser vos branches et en créer de nouvelles. Nous aborderons seulement le bouton Voir les règles de branche qu’il est important de connaître, surtout lorsque vous partagez votre dépôt avec d’autres utilisateurs.

images/04EI24.png

En appuyant sur Voir les règles de branche, GitLab vous amène dans les paramètres du projet où nous pouvons constater que la branche main est protégée.

b. Les branches protégées

Dans GitLab, une branche protégée indique que des restrictions spéciales sont appliquées à la branche pour empêcher les modifications directes non autorisées. Ceci peut inclure l’interdiction à certains utilisateurs (selon leur rôle) de « pousser » des commits, de forcer des pushs ou de supprimer la branche, sauf pour les utilisateurs spécifiquement autorisés.

Par défaut, GitLab protège la branche main ou master contre les modifications accidentelles ou malveillantes. Vous pouvez modifier cette restriction dans la section Branches protégées.

images/04EI25.png

Vous pouvez sélectionner le rôle...

Découvrir les options d’édition

Dans GitLab, il existe plusieurs options et fonctionnalités permettant d’éditer les fichiers d’un projet ou de rendre Git plus convivial. Elles peuvent être divisées en deux niveaux :

  • Dépôt : édition à partir de la page d’accueil d’un projet où vous pouvez ajouter des fichiers ou des répertoires ou avoir recours à un IDE pour accéder à l’ensemble du contenu ;

  • Fichier : édition à partir d’un fichier spécifique sur lequel vous avez cliqué.

1. Édition à partir de la page d’accueil d’un dépôt

Lorsque vous êtes sur la page d’accueil du dépôt d’un projet, un certain nombre d’outils graphiques se présentent à vous. Nous proposons d’en présenter quatre que vous risquez d’utiliser souvent lorsque vous aurez à travailler directement sur GitLab.

Voici une capture avec chacun des éléments que nous allons aborder :

images/04EI32.png
  • 1. Bouton + : offre diverses options notamment pour créer un répertoire ou un fichier dans le répertoire en cours ou d’ajouter une nouvelle branche ou étiquette au niveau du dépôt.

images/04EI33.png
  • 2. Bouton Rechercher un fichier : permet de rechercher rapidement un fichier du projet qui...

Conclusion

Nous connaissons maintenant les principales fonctionnalités permettant d’interagir et de travailler avec le dépôt Git d’un projet sur GitLab. Après avoir appris à cloner un dépôt distant via SSH et HTTPS, nous avons vu comment utiliser les commandes permettant de faire des opérations de « push » et de « pull » à partir d’un dépôt local. Par la suite, nous avons passé en revue les principales fonctionnalités de Git dans GitLab en examinant quelques options graphiques de visualisation des branches, de l’historique des commits ou de l’état d’un dépôt.

Notre parcours s’est terminé sur une présentation des étiquettes Git, des extraits de code dans GitLab et nous avons donné un aperçu des fonctionnalités d’édition de la plateforme.

Le chapitre qui suit, Organiser et suivre son travail dans GitLab, est consacré en bonne partie aux projets, non pas en tant que dépôts, mais comme des objets essentiels de GitLab qui permettent de gérer, suivre et organiser son travail. Nous verrons aussi en quoi consistent les groupes, les tickets et les merge requests.