Les Merge Requests sur GitLab pour collaborer et valider

Le guide essentiel sur les Merge Requests pour la relecture de code et la fusion sécurisée vers la branche main sur GitLab.

Les Merge Requests sur GitLab : Collaborer et valider le code

C'est quoi une Merge Request et pourquoi l'utiliser ?

La Merge Request (ou MR) est sans doute la fonctionnalité la plus importante pour le travail en équipe sur GitLab. Une fois que vous avez fini de coder une fonctionnalité sur votre branche isolée, vous ne pouvez pas simplement l'injecter dans le code principal sans vérification. C'est ici qu'intervient la Merge Request.

Imaginez que la Merge Request est une relecture de code officielle. Vous dites à vos collègues : "J'ai terminé mon travail sur cette branche, voici les changements que je propose d'ajouter au projet principal. Pouvez-vous vérifier si tout est correct ?". Cela permet de discuter des modifications, de suggérer des améliorations et de s'assurer qu'aucun bug ne rentre dans la version stable du logiciel.

Information importante

Pour créer une Merge Request, vous devez impérativement avoir travaillé sur une branche différente de la branche principale (main). Si vous avez oublié comment faire, relisez le chapitre sur la création de branches.

Les étapes pour créer une Merge Request

Le processus se déroule sur l'interface web de GitLab et permet de documenter vos intentions avec précision avant la fusion finale.

Accéder à l'onglet dédié

Rendez-vous sur la page de votre projet. Dans le menu latéral de gauche, cliquez sur Code puis sur Merge Requests. Pour lancer une nouvelle demande, cliquez sur le bouton bleu New merge request.

Interface des Merge Requests GitLab

"L'onglet Merge Requests centralise toutes les propositions de changements"

Sélectionner les branches source et cible

GitLab va vous demander de comparer deux univers distincts :

  • Source branch : C'est la branche où vous avez écrit votre nouveau code.
  • Target branch : C'est la branche de destination, généralement main.
Sélection des branches source et cible

"Choisissez bien votre branche de travail comme source et main comme cible"

Cliquez sur le bouton Compare branches and continue pour passer à la suite de la configuration de la MR.

Décrire et assigner le travail

Cette étape est cruciale pour que vos collègues comprennent l'objectif de vos modifications. Vous devez remplir plusieurs champs :

  • Title : Donnez un nom explicite à votre modification. Vous pouvez cocher Mark as draft pour indiquer que votre travail est encore en cours et empêcher une fusion accidentelle.
  • Description : Détaillez le contenu de vos changements. C'est l'endroit idéal pour lier un ticket (ex: "Closes #1") afin d'automatiser la clôture des tâches.
  • Assignee : Désignez le responsable de la fusion. Le lien "Assign to me" permet de vous l'attribuer en un clic.
  • Reviewer : Choisissez les collègues chargés de la revue de code. Leur validation est souvent requise avant toute intégration.
  • Milestone & Labels : Liez votre demande à un jalon temporel ou ajoutez des étiquettes pour catégoriser vos modifications (ex: bug, feature).
  • Merge can start : Cette option permet de définir si la fusion peut se faire à tout moment ou si elle doit attendre que certains critères (comme le passage des tests) soient remplis.
  • Merge options : Deux réglages essentiels pour garder un projet propre :
    • Delete source branch : Supprime automatiquement votre branche de travail après la fusion pour éviter d'encombrer le dépôt.
    • Squash commits : Fusionne tous vos commits intermédiaires en un seul commit propre pour simplifier l'historique Git du projet.
Détails de la Merge Request

Soumettre la demande

Une fois que tout est prêt, cliquez sur le bouton Submit merge request. Votre demande est maintenant publiée. Vos collègues peuvent voir les différences de code (diff), laisser des commentaires sur des lignes précises et finalement cliquer sur Merge pour intégrer officiellement votre travail.

Aperçu de la Merge Request publiée

"Une fois publiée, la MR devient un espace de discussion technique"

Conclusion

La Merge Request est le pilier de la qualité logicielle sur GitLab. Elle transforme l'écriture du code en un effort collectif, transparent et sécurisé. C'est le moment où les idées sont partagées et validées avant d'être déployées en production.

Pour rendre vos flux de travail encore plus professionnels, il est possible de lier automatiquement vos demandes aux tickets résolus. C'est ce qu'on appelle le référencement d'issues, et nous allons voir comment l'utiliser dans le chapitre suivant.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

28 commentaires

ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pensez à bien checker vos diff avant de cliquer sur Merge. Une relecture rapide évite 90% des régressions en prod.

13/05/2026 à 11:03
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Clique sur le bouton Mark as ready en haut de la page de la MR. C'est tout.

13/05/2026 à 03:40

Qu'est-ce qu'on fait si la MR est bloquée par un Draft oublié ?

12/05/2026 à 23:38
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, édite simplement la description de la MR et ajoute Closes #123. GitLab fera le lien immédiatement.

12/05/2026 à 16:25
epinto
Membre Actif
Avatar de epinto
epinto
Membre Actif

J'ai oublié de lier mon issue, je peux le faire après coup ?

12/05/2026 à 09:41
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, dans Merge request approvals. Tu peux définir un nombre minimum d'approbateurs requis.

12/05/2026 à 03:16

C'est possible de forcer une relecture par au moins deux personnes ?

11/05/2026 à 20:48
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

De rien. Pense aussi à utiliser des Labels pour filtrer tes MR, ça aide quand tu en as 50 en attente.

11/05/2026 à 13:09
edouard72
Membre
Avatar de edouard72
edouard72
Membre

Merci pour l'astuce sur le Squash commits, ça a rendu notre repo beaucoup plus propre.

11/05/2026 à 05:55
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

GitLab propose un éditeur de conflit si c'est simple. Sinon, fais-le en local :

git checkout main
git pull origin main
git checkout ta-branche
git merge main
10/05/2026 à 23:56
isabelle57
Membre
Avatar de isabelle57
isabelle57
Membre

J'ai un souci de conflit de fusion. Comment le résoudre proprement via l'interface ?

10/05/2026 à 17:32
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Tu peux modifier la MR à tout moment dans la barre latérale droite. Clique sur Edit au niveau des Reviewers.

10/05/2026 à 13:32
zoe54
Membre
Avatar de zoe54
zoe54
Membre

Comment je fais pour ajouter un reviewer après avoir créé la MR ?

10/05/2026 à 06:57
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

T'as peut-être pas les permissions de Developer sur le projet. Check ton rôle dans les membres.

10/05/2026 à 00:08

Le bouton Mark as draft est grisé chez moi, une idée ?

09/05/2026 à 19:52
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Vérifie que le numéro est correct et que le ticket est bien dans le même projet. Ça ne marche pas entre deux projets différents sans config spécifique.

09/05/2026 à 12:41
alexandrie60
Membre Actif
Avatar de alexandrie60
alexandrie60
Membre Actif

Pourquoi mon ticket ne se ferme pas automatiquement malgré le Closes #1 dans la description ?

09/05/2026 à 08:27
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, dans Settings > Merge requests, coche Delete source branch by default. Ça évite de polluer le repo avec des branches mortes.

09/05/2026 à 03:53
laurent-munoz
Membre Actif
Avatar de laurent-munoz
laurent-munoz
Membre Actif

Est-ce qu'on peut forcer la suppression de la branche source après fusion par défaut pour toute l'équipe ?

08/05/2026 à 20:47
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Si c'est supprimé côté serveur, c'est mort. Repars de main et crée une nouvelle branche.

08/05/2026 à 13:51
vincent63
Membre Actif
Avatar de vincent63
vincent63
Membre Actif

J'ai supprimé ma branche source par erreur avant de valider la MR. Je peux la restaurer ?

08/05/2026 à 07:55
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Il faut configurer les Merge pipeline dans les réglages du projet. Sinon, tu peux utiliser un fichier .gitlab-ci.yml pour bloquer la fusion via les règles d'approbation.

08/05/2026 à 01:57

Comment on bloque la fusion tant que les tests ne sont pas verts ?

07/05/2026 à 21:31
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Le squash compresse tes 15 commits brouillons en un seul propre. C'est indispensable pour garder un historique lisible sur main. Si tu veux garder chaque détail, ne coche pas l'option.

07/05/2026 à 15:10

C'est quoi la différence entre Squash commits et un merge normal ? J'ai peur de perdre l'historique.

07/05/2026 à 08:41

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire