TP2 : Découvrir GitLab
Disclaimer
Le tutoriel est en français, mais de nombreux mots-clés sont en anglais. Il est essentiel de vous familiariser avec le langage informatique ainsi qu’avec les documentations techniques, qui sont majoritairement rédigées en anglais.
Objectifs¶
Le but de ce TP est de comprendre les concepts et les commandes suivantes :
Pour commencer...¶
Branches
La notion de branches en Git permet de maintenir une version stable d’une application ou d’un projet et d’autres versions en développement. Toutes les modifications sont donc effectuées sur des branches autres que la branche principale puis fusionnées avec cette branche plus tard.
Cette notion sera abordée plus en détail en projet transverse (SAÉ 1256). Dans ce cours, vous allez maintenir une seule branche (la branche principale) pour votre travail en solo.
Le nom de la branche principale par défaut sur la version de Git à l’IUT est master mais les versions modernes adoptent plutôt le nom main. Pour éviter les confusions, nous allons changer le nom de la branche principale à main.
Vérifiez le nom de votre branche courante (la branche principale) avec la commande suivante.
git branchSi votre branche s’appelle
master, exécuter la commande suivante pour le changer àmain.
git branch -m mainVous pouvez changer la configuration globale de Git sur votre machine pour toujours avoir
maincomme branche principale quand vous faitesgit initavec la commande suivante.
git config --global init.defaultBranch mainLa gestion des versions à distance et en équipe¶
Des exemples de travail à distance et en équipe
Vous avez travaillé en classe avec Git et vous voulez continuer à travailler chez vous sur le même projet ou vous êtes en équipe et tous les membres veulent utiliser le même historique de versions du projet commun.
Si seulement il existait un serveur qui utilise Git et qui peut stocker votre Local Repo en ligne...
Initiation à GitLab¶
En tant qu’étudiant à l’IUT d’Orsay, vous disposez déjà d’un compte sur le GitLab de l’IUT.

Pour vous connecter, utilisez votre identifiant court et votre mot de passe du département.
Personal Access Token¶
Pour établir une connexion sécurisée entre votre machine et le serveur GitLab de l’IUT, nous utiliserons un Personal Access Token (PAT) qui remplace l’ancien système de mot de passe.
Pour créer un PAT :
Accédez à votre profil en cliquant sur votre avatar (en haut à gauche) puis Edit profile.

Dans le menu de gauche, cliquez sur Access Tokens.

Ajouter un nouveau token en cliquant sur Add new token.

Donnez un nom au token qui reflète le poste de travail utilisé (par exemple
IUTOrsaysi vous travaillez sur un poste à l’IUT).
Définissez une date d’expiration d’un an (la durée maximale autorisée) à partir de la date d’aujourd’hui.
Date d’expiration
De la même manière qu’il est recommandé de changer régulièrement son mot de passe, la date d’expiration du PAT impose d’en générer un nouveau à intervalles réguliers.
Sélectionnez tous les scopes.
Scope
L’intérêt de limiter les scopes d’un PAT est qu’en cas d’attaque, le pirate ne pourra effectuer que les actions autorisées par ces scopes, réduisant ainsi les risques de compromission.
Cliquez sur Create personal access token.
Création d’un Remote Repo¶
Créez votre Remote Repository en cliquant sur le bouton
+en haut à gauche.

Créez un projet vide avec le même nom que celui sur votre machine (
qualite-dev-s2-<prenom>-<nom>).Pour l’URL du projet, choisissez votre login court Users et l’URL proposé par défaut.
Sélectionnez l’option de visibilité “Privé” pour votre projet et décochez l’option “initialiser le projet avec un README”, nous voulons un projet complètement vide.
README.md
Avoir un README en Markdown dans un projet est une pratique standard. Ce fichier sert de description du projet. Nous allons revenir sur ce sujet plus tard.
Le Markdown est aussi ce que j’utilise pour ce site !
Cliquez sur Create Project.
Si vous voyez les messages suivantes, vous pouvez les ignorer en cliquant sur Don’t show again pour SSH key et
Xpour Auto DevOps.

Vérifiez que votre projet est bien vide (sans README). Sinon, cliquez sur Settings > General > Advanced puis Delete dans Delete project et recommencez.
Ajouter un Remote Repo¶
Dans votre projet, cliquez sur le bouton Code situé à droite.

Copiez l’URL sous l’option Clone with HTTPS.

Placez-vous dans votre répertoire de travail local déjà initialisé avec
git initet ouvrez un terminal.
Exécutez la commande suivante et observez.
git remote -vVous pouvez remarquer que votre projet local n’a pas encore de Remote Repo.
Saisissez la commande suivante, en collant l’adresse copiée et en rajoutant votre login ainsi que votre PAT aux emplacements appropriés.
git remote add origin https://<votre login court>:<Personal Access Token>@git.iut-orsay.fr/<login du créateur du projet>/<nom du projet>.gitPar exemple :
git remote add origin https://hla:glpat-1234thisIsYourPAT5678@git.iut-orsay.fr/hla/qualite-dev-s2-hoang-la.gitRéexécutez la commande
git remote -vet observez.
Votre projet contient maintenant un Remote Repo.
Fetch et Push¶
Exécutez
git statuset observez.
Exécutez
git fetchpuisgit statuset observez la différence.
git fetch
git fetchgit fetch met à jour la remote-tracking branch. Maintenant, git status est capable de comparer le Local Repo et le Remote Repo.
Exécutez
git pushpour mettre toutes les modifications du Local Repo sur le Remote Repo.
git push --set-upstream origin main
git push --set-upstream origin mainLa première fois que vous effectuez un push, Git vous demande de spécifier quelle branche vous souhaitez “pousser” votre branche principale du Local Repo vers. Ici, nous disons simplement que nous souhaitez pousser vers la branche principale de origin (le Remote Repo). Nous n’avons besoin de le faire qu’une seule fois par branche et nous pouvons utiliser git push et git pull dans le futur sans spécifier la branche.
Pour rendre cela automatique dans le futur, vous pouvez aussi exécuter la commande suivante :
git config --global push.autoSetupRemote trueRetournez sur GitLab et vérifiez que le Remote Repo est mis à jour.
Créez un répertoire
TP2/comme sous-répertoire de la racine de votre projet.Créez un fichier texte de votre choix.
Add, commit et push cette nouvelle modification.
Vérifiez que le Remote Repo contient bien ces nouvelles modifications.
Ajoutez votre encadrant à votre projet en suivant les instructions ci-dessous.
Cliquez sur Manage à gauche, puis sélectionnez Members.

Cliquez sur Invite members en haut à droite.
Ajoutez votre encadrant avec le rôle Maintainer, qui lui donne presque autant de droit sur le projet que le rôle Owner.
Ajoutez une date d’expiration d’environ 7 mois après.
Clone¶
Imaginons maintenant que vous travaillez sur une autre machine qui n’a pas encore de copie de votre projet.
Mettez vous dans un autre répertoire (qui ne contient pas votre dépôt Git
qualite-dev-s2-<prenom>-<nom>).Téléchargez le Remote Repo avec la commande suivante.
git clone https://<votre login court>:<Personal Access Token>@git.iut-orsay.fr/<login du créateur du projet>/<nom du projet>.gitPar exemple :
git clone https://hla:glpat-1234thisIsYourNewPAT5678@git.iut-orsay.fr/hla/qualite-dev-s2-hoang-la.gitVérifiez que ce nouveau répertoire correspond bien au Remote Repo puis vous pouvez le supprimer pour éviter des confusions dans le futur. Il s’agit simplement d’une illustration de la commande
git clone.Revenez aux objectifs et cochez les points que vous avez maîtrisés. Entraînez-vous sur les commandes et les notions que vous n’avez pas encore bien comprises. Faites appel à votre encadrant si besoin.
Quiz !
N’oubliez pas de compléter le quiz du TP sur Moodle !