Vous êtes sur la page 1sur 11

Intégration et développement continus – 2023 EC2LT

Activité 3 : Tutoriel d'apprentissage pour la collaboration à plusieurs avec GitLab

Rappels : Principes généraux de la collaboration à plusieurs avec Gitlab ou Github


1. On travaille toujours avec 2 dépôts :
• Le dépôt local ;
• Un dépôt « distant » (remote) auquel on associe un nom.
2. Les 4 principales commandes git permettant d’interagir avec un dépôt distant sont :
• git fetch : on récupère en local le contenu du dépôt distant ;
• git pull : équivalent d’un git fetch suivi d’un git merge ;
• git push : on transfère l’état actuel de la branche courante (et son historique) vers le dépôt
distant ;
• git clone : on crée un dépôt local à partir d’un dépôt distant.
3. La collaboration à plusieurs dans GitLab repose principalement sur deux
approches :
• la collaboration basée sur les branches ;
• la collaboration basée sur les forks.

Partie 1 : Tutoriel d'apprentissage pour la collaboration à plusieurs avec GitLab


Étape 0. Création des utilisateurs qui vont travailler sur le projet
0.1 Connectez-vous à l’interface graphique de votre serveur avec votre navigateur

0.2 Cliquez sur le Menu Principal (Main Menu, les trois traits horizontaux au dessus de Admin
Area et avant le menu de recherche), puis sur Users, puis sur New User
(http://gitlab.rtn.sn/admin/users)
Remplir les champs, Name, Username, Email et cliquer sur Create User

Après la création de l’utilisateur, cliquer sur le bouton edit afin de définir le mot de passe.

Après avoir sauvegardé la modification du mot de passe, vous pouvez vous connecter avec
l’utilisateur. Il faut noter qu’à la première connexion, il vous sera demandé de définir un nouveau
mot de passe.
Étape 1 : Créer le projet GestionNotesEc2lt sur GitLab avec l’utilisateur Bouki

Connectez-vous en tant que Bouki et cliquez sur Create Project, puis sur Create Blank Project

Renseigner le nom du projet, puis définir la visibilité. Il existe différents niveaux de visibilité des
projets GitLab :
• Privé : L'accès au projet doit être accordé explicitement à chaque utilisateur. Si ce projet
fait partie d'un groupe, l'accès est accordé aux membres du groupe.
• Interne : Le projet peut être accessible par tout utilisateur connecté, à l'exception des
utilisateurs externes.
• Public : Le projet peut être accessible sans aucune authentification.

Nous allons choisir Privé (Private) dans notre cas afin d’inviter explicitement baba à travailler sur le
projet.
Etape 2 : Inviter baba à collaborer sur le projet
Cliquer sur Project Information – Members - Invite members et rechercher baba afin de l’inviter à
travailler sur le projet.
Se connecter avec baba et constater qu’il a effectivement accès au projet

Etape 3 Collaboration basée sur les branches :

• baba, le développeur du projet se connecte sur son terminal et clone le dépôt distant sur sa
machine locale afin de créer le fichier notes.html. Lorsque vous exécutez la commande git
clone, un nouveau dépôt local est automatiquement créé et initialisé à partir du dépôt
distant que vous clonez.

root@bessan-pc:/home/bessan/NOTES# git clone http://gitlab.rtn.sn/bouki/gestionnotesec2lt

• Bouki crée la branche test et bascule automatiquement dessus


root@bessan-pc:/home/bessan/NOTES# cd gestionnotesec2lt/
root@bessan-pc:/home/bessan/NOTES/gestionnotesec2lt# git checkout -b test

• Bouki crée son premier code notes.html et l’ajoute à l’index, puis fait un commit
bessan/NOTES/gestionnotesec2lt# cp /var/www/html/bull/notes.html .
root@bessan-pc:/home/bessan/NOTES/gestionnotesec2lt# git add notes.html
NOTES/gestionnotesec2lt# git commit -m 'Fichier pour la saisie des notes'

• Bouki doit maintenant envoyer ses modifications locales sur le dépôt distant avec la
commande git push. Cependant, puisqu’il s’agit d’un projet où il y a plusieurs membres qui
travaillent simultanément, il est recommandé de télécharger les dernières modifications
avec la commande git pull. Nous allons constater que le propriétaire a créé entre temps un
fichier description_projet associé à la branche main via l’interface graphique.
1. Quelle est votre branche actuelle (git branch)
2. Quelles sont les différentes branches distantes ? (git branch -r)
3. Exécuter la commande git pull sans argument et tirer une conclusion sur l’erreur
rencontrée.
4. Comment connaître Comment connaître le nom de votre dépôt distant ? (git remote
-v) le nom de votre dépôt distant ? (git remote -v)
5. Exécuter la commande git pull en précisant le dépôt distant et la branche depuis
laquelle vous souhaitez récupérer les informations et les fusionner avec votre dépôt
local.
L’option --rebase va intégrer les modifications de la branche distante main à votre
branche locale en réorganisant les commits. Vos commits précédents sont toujours
présents et intègrent déjà les fichiers que vous avez ajoutés et validés
root@bessan-pc:/home/bessan/NOTES/gestionnotesec2lt# git pull --rebase origin
main

6. A présent que les modifications du dépôt distant sont prises en compte, vous
pouvez envoyer vos propres modifications (création de nouvelle branche et du
fichier notes.html) sur le dépôt distant avec la commande git push
‘nom_dépot_distant nom_branche
root@bessan-pc:/home/bessan/NOTES/gestionnotesec2lt# git push origin test
7. Connectez-vous à l’interface graphique de gitlab avec le compte bouki et
constatez que le projet a maintenant 2 branches.

Etape 3 : Bouki clone le nouveau projet, sépare le HTML du CSS

1. Cloner le dépôt distant


root@bessan-pc:/home/bessan/BOUKI# git clone
http://gitlab.rtn.sn/bouki/gestionnotesec2lt

2. Afficher les branches distantes et basculer sur la branche test


3. Séparer le code html du code css et valider les modifications sur le dépôt local
root@bessan-pc:/home/bessan/BOUKI/gestionnotesec2lt# git add .
root@bessan-pc:/home/bessan/BOUKI/gestionnotesec2lt# git commit -m "Séparation
de CSS et HTML"

4. Récupérer les éventuelles modifications sur le dépôt distant et fusionnez-les avec


votre dépôt courant.
root@bessan-pc:/home/bessan/BOUKI/gestionnotesec2lt# git pull --rebase origin
main
5. Envoyez les modifications du dépôt en local sur le dépôt distant
root@bessan-pc:/home/bessan/BOUKI/gestionnotesec2lt# git push origin test

6. Se connecter avec l’interface graphique de baba et constater les changements.


Etape 4 : Baba récupère les modifications, valide les modifications et fusionne les branches

1. Se placer dans son dépôt cloné et récupérer les modifications de toutes les
branches sans les fusionner
git fetch --all
2. Sur chaque branche, effectuer git status et git pull origin nom_branch pour faire la
fusion des modifications non prises en compte. Voici une illustration pour la branche
test

La même opération a été faite avec la branche main. Notez qu’il faut d’abord basculer
sur la branche avec l’opération git pull.

3. Fusionner sur votre dépôt local les modifications de la branche test avec la branche
principale main
/home/bessan/BOUKI/gestionnotesec2lt# git merge origin/test

4. Envoyez les modifications sur le dépôt distant


root@bessan-pc:/home/bessan/BOUKI/gestionnotesec2lt# git push origin main
5. Se connecter à l’interface graphique de gitlab pour constater les différents
changements.

Vous aimerez peut-être aussi