Skip to article frontmatterSkip to article content

TP1 : Découvrir Git et GitLab

IUT d'Orsay, Université Paris-Saclay

Avant de commencer à coder, il est important de se familiariser avec les outils permettant d’organiser votre travail de programmation.

Objectifs

Le but de ce TP est de comprendre les points suivants :

Ces points sont essentiels pour la suite donc il faut absolument les maîtriser !

Activation de votre compte GitLab

En tant qu’étudiant à l’IUT d’Orsay, vous disposez déjà d’un compte sur le GitLab de l’IUT.

git.iut-orsay.fr

Pour vous connecter, utilisez votre identifiant 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 :

  1. Accédez à votre profil en cliquant sur votre avatar (en haut à gauche) puis Edit profile.
Edit profile
  1. Dans le menu de gauche, cliquez sur Access Tokens.
Access Tokens
  1. Ajouter un nouveau token en cliquant sur Add new token.
Add new token
  1. Donnez un nom au token qui reflète le poste de travail utilisé (par exemple IUTOrsay si vous travaillez sur un poste à l’IUT).
  1. Définissez une date d’expiration d’un an (la durée maximale autorisée) à partir de la date d’aujourd’hui.
  1. Sélectionnez tous les scopes.
  1. Cliquez sur Create personal access token.

Création d’un dépôt distant

  1. Créez votre premier projet/dépôt (repository) en cliquant sur le bouton + en haut à gauche.
Create new project
  1. Créez un projet vide avec le nom qualite-dev-s2-<prenom>-<nom> (par exemple qualite-dev-s2-hoang-la).
  1. Pour l’URL du projet, choisissez votre login court Users et l’URL proposé par défaut.

  2. Sélectionnez l’option de visibilité “Privé” pour votre projet et cochez l’option pour initialiser le projet avec un README.

  1. Cliquez sur Create Project.

  2. Si vous voyez les messages suivantes, vous pouvez les ignorer en cliquant sur Don’t show again pour SSH key et X pour Auto DevOps.

SSH Key et Auto DevOps pipeline
  1. Parcourez le README par défaut proposé par GitLab.

Configuration de votre poste de travail

Votre projet a été créé sur le serveur de l’IUT. Maintenant, pour travailler sur ce projet depuis votre poste de travail local, vous devez d’abord le configurer.

  1. Recopiez les lignes de code suivantes dans un terminal.
git config --global user.name "<Prénom> <Nom>"
git config --global user.email "<Email universitaire>"

Par exemple :

git config --global user.name "Hoang La"

Puis :

git config --global user.email "hoang.la@universite-paris-saclay.fr"

Ou :

git config --global user.email "hoang.la-tmp@universite-paris-saclay.fr"

Vous pouvez maintenant cloner votre dépôt distant pour le télécharger sur votre poste local : 2. Cliquez sur le bouton Code situé à droite.

Code
  1. Copiez l’URL sous l’option Clone with HTTPS.
Clone with HTTPS
  1. Placez-vous dans votre répertoire de travail préféré (et ouvrez un terminal).

  2. Saisissez la commande suivante, en collant l’adresse copiée et en rajoutant votre login ainsi que votre PAT aux emplacements appropriés.

git clone https://<votre login court>:<Personal Access Token>@git.iut-orsay.fr/<login du créateur du projet>/<nom du projet>.git

Par exemple :

git clone https://hla:glpat-1234thisIsYourPAT5678@git.iut-orsay.fr/hla/monprojet.git

Dépôt local

Un répertoire portant le même nom (dépôt local) a maintenant été téléchargé sur votre machine.

  1. Exécutez les commandes suivantes.
cd monprojet/
ls
git status

La commande ls vous permet d’afficher l’ensemble des fichiers dans le répertoire, tandis que git status montre l’état du dépôt. Pour l’instant, cette dernière commande devrait indiquer qu’il n’y a rien à valider et que votre copie de travail est propre (nothing to commit, working tree clean).

  1. Que constatez-vous en exécutant les commandes suivantes ?
touch my-first-file.txt
git status
  1. Ajoutez une ligne dans my-first-file.txt (par exemple Hello World!).

  2. Demandez à Git de suivre la modification à my-first-file.txt en exécutant la commande suivante.

git add my-first-file.txt
  1. Exécutez à nouveau la commande git status. Que vous indique-t-elle ?
  1. Maintenant, pour créer un historique des modifications suivies (ici, le fichier my-first-file.txt avec la ligne Hello World!), vous devez valider (commit) ces changements et ajouter un message décrivant ces modifications en exécutant la commande git commit -m "<message de commit descriptif>".

Par exemple :

git commit -m "Premier commit de my-first-file.txt qui dit Hello World!"
  1. Réexécutez git status pour vérifier l’état de votre dépôt. Que vous indique-t-elle ?
  1. Exécutez git push.

  2. Retournez sur GitLab et vérifiez que le dépôt distant correspond bien au dépôt local.

Dépôt distant

  1. Cliquez sur my-first-file.txt.
  2. Cliquez sur Edit.
  3. Sélectionnez l’option Open in Web IDE.
  4. Ajoutez une deuxième ligne à ce fichier (par exemple, Hi!).

Vous pouvez voir un 1 sur la barre à gauche, indiquant qu’un changement a été effectué. Si vous cliquez dessus, vous verrez un changement concernant le fichier my-first-file.txt et l’option pour sauvegarder et diffuser sur la branche main (Commit and push to ‘main’).

  1. Ajoutez un message de commit.
  2. Cliquez sur le bouton Commit and push to ‘main’.
  3. Cliquez sur Continue lorsque l’on vous demande si vous souhaitez sauvegarder sur la branche par défaut (main).

Synchronisation du dépôt local avec le dépôt distant

Retournez sur votre dépôt local et supposons qu’un collaborateur a effectué des changements, puis les a diffusés sur le dépôt distant sans que vous en soyez informé.

  1. Exécutez git status. Que remarquez-vous d’étrange ?
  1. Exécutez git remote update, puis git status. Que voyez-vous maintenant ?
  1. Exécutez git diff origin/main pour voir les différences entre les deux dépôts.
  1. Pour synchroniser votre dépôt local avec le dépôt distant (qui, cette fois, est en avance), exécutez git pull.
  1. Pour consulter l’historique des commits, exécutez git log. Pour quitter le log, appuyer sur q (pour ‘quit’).

Ignorer des fichiers

  1. Créez un fichier hello-world.cpp (avec touch hello-world.cpp par exemple).

  2. Ouvrez hello-world.cpp dans votre éditeur de code préféré et recopiez le code suivant.

hello-world.cpp
#include <iostream>
using namespace std;
int main() {
    cout << "Hello World!" << endl;
    return 0;
}
  1. Compilez le code avec g++ -o <nom du fichier> <nom du fichier>.cpp.

Par exemple :

g++ -o hello-world hello-world.cpp
  1. Exécutez l’exécutable hello-world avec la commande ./hello-world.

Les exécutables font partie des fichiers que nous souhaitons ignorer.

  1. Créez le fichier .gitignore.
  1. Écrivez le nom de l’exécutable hello-world dans .gitignore.
  1. Exécutez git add, git commit -m "<message>" et git push pour envoyer le fichier .gitignore sur le dépôt distant.

  2. Exécutez git status. Qu’est-ce qui change par rapport à d’habitude ?

Pour finir...

Terminons ce TP par une petite réorganisation.

  1. Créez un dossier TP1/ dans votre projet et bougez tout sauf .git, .gitignore et README.md vers ce dossier.

Vous allez maintenir ce projet pendant le reste du cours en créant des dossiers séparés pour chaque TP.

  1. Revenez à la racine du projet et exécutez git add .
  1. Validez les modifications suivies avec git commit.

Vu que nous allons ignorer beaucoup d’exécutables dans le futur, pour éviter de modifier .gitignore à chaque fois, nous allons utiliser des expressions régulières pour ignorer les fichiers sans extensions (les exécutables).

  1. Remplacez le code du fichier .gitignore avec le code suivant.
*
!*.*
!*/
  1. Exécutez add, commit et push pour synchroniser vos dépôts.

  2. Ajoutez votre encadrant à votre projet en suivant les instructions ci-dessous.

Manage members
  1. Revenez aux objectifs et cochez les points que vous avez maîtrisés. Pratiquez les commandes et les points que vous n’avez pas encore bien compris. Appelez votre encadrant si besoin.