Maîtriser l'opération de Rebase sur GitLab pour un historique linéaire

Apprenez à utiliser le Rebase Git pour mettre à jour vos branches et maintenir un historique de commit GitLab propre.

L'opération de Rebase sur GitLab : Maintenir un historique propre

Pourquoi utiliser le Rebase ?

Dans le cadre d'un projet collaboratif, il arrive souvent que vous travailliez sur une branche pendant plusieurs jours. Pendant ce temps, la branche principale nommée main continue d'évoluer car vos collègues y ajoutent d'autres fonctionnalités ou des corrections de bugs.

Le problème est que votre branche de travail devient "décalée" par rapport à la réalité du projet. Si vous tentez de fusionner votre travail à la fin, vous risquez de rencontrer de nombreux conflits Git difficiles à gérer.

L'opération de Rebase Git permet de remettre votre travail "à jour" par rapport au main. Imaginez que vous construisez une extension à une maison. Pendant vos travaux, le propriétaire décide de repeindre toute la maison d'origine. Faire un rebase, c'est comme si vous déplaciez votre extension pour qu'elle s'appuie proprement sur la maison fraîchement repeinte plutôt que sur l'ancienne version. Cela permet de garder un historique Git linéaire et lisible.

Préparation du scénario de Rebase

Pour bien comprendre comment cela fonctionne, nous allons simuler une situation réelle où deux branches évoluent en même temps au sein de votre dépôt GitLab.

Création de la branche de test

Commencez par créer une nouvelle branche nommée rebase-example pour simuler un nouveau développement :

git switch -c rebase-example

Résultat :

Switched to a new branch 'rebase-example'

Ajout de contenu sur la branche

Créez un nouveau fichier et ajoutez du texte à l'intérieur pour simuler votre travail :

echo "Welcome to Devopssec" > rebase_file.md
git add rebase_file.md
git commit -m "Ajout du fichier de rebase sur la branche"

Changement sur la branche principale

Pendant que vous travailliez sur votre fichier, le main a reçu une mise à jour importante d'un autre membre de l'équipe.

Retour sur le main

Basculez sur la branche principale pour simuler l'évolution du projet :

git switch main

Ajout d'une modification prioritaire

Créez un autre fichier directement sur le main et validez le changement :

echo "Mise à jour importante" > master_update.md
git add master_update.md
git commit -m "Mise à jour urgente sur main"

Exécution de l'opération de Rebase

C'est ici que la magie opère. Nous allons dire à notre branche rebase-example de se placer après le dernier commit du main.

Lancer le rebase

Retournez sur votre branche de travail puis lancez la commande git rebase :

git switch rebase-example
git rebase main

Résultat :

First, rewinding head to replay your work on top of it...
Applying: Ajout du fichier de rebase sur la branche
Successfully rebased and updated refs/heads/rebase-example.

Information technique

Le Rebase réécrit l'histoire des commits. Il prend vos modifications, les met de côté, applique les nouveaux changements du main, puis repose vos modifications par-dessus. Cela donne l'impression que vous avez commencé à travailler sur la toute dernière version disponible.

Attention : Le Force Push

Si vous avez déjà envoyé votre branche sur GitLab avant le rebase, un simple git push sera refusé. Vous devrez utiliser git push --force car l'historique a été modifié.

Conclusion

L'opération de Rebase sur GitLab est un outil puissant pour maintenir un projet propre, surtout quand vous travaillez sur des fonctionnalités qui prennent du temps. Elle permet d'éviter les nœuds complexes dans l'historique de votre forge logicielle.

Toutefois, il arrive que l'on fasse trop de petits commits inutiles pendant le développement. Pour éviter de polluer le projet avec des messages comme "oubli d'une virgule", nous allons apprendre à fusionner ces commits en un seul. C'est ce qu'on appelle le Squashing de commits, et c'est le sujet du prochain chapitre.

Espace commentaire

Écrire un commentaire

Vous devez être connecté pour poster un message !

15 commentaires

23/04/26

Enfin un guide clair sur le Rebase Git pour GitLab. J'en avais marre des merges bordéliques

Membre
23/04/26

Maintenir un historique propre c'est essentiel pour nous. Merci

23/04/26

La section pourquoi utiliser le Rebase est top pour convaincre les réticents

23/04/26

Le scénario de Rebase est super bien pensé avec la création de la branche de test

Ça rend le concept concret et facile à reproduire pour apprendre

23/04/26

Le rappel sur le retour sur le main et l'ajout d'une modification prioritaire c'est le cas typique

23/04/26

lancer le rebase est expliqué simplement. no more fear of rebase

J'ai testé avec un projet perso, ça marche au poil comme décrit

23/04/26

historique propre c'est la vie. les revues de code sont tellement plus rapides

23/04/26

Mettre à jour vos branches avec Rebase, notre mantra daily

23/04/26

Merci pour le guide sur Rebase. J'ai vu des senior devs qui avaient du mal avec ça

23/04/26

La préparation du scénario de Rebase est didactique. C'est parfait pour un workshop interne

Membre
23/04/26

Le changement sur la branche principale c'est le point où beaucoup se plantent. Bien détaillé

C'est précisément là où on a des merges sauvages si on ne rebase pas correctement

Membre
23/04/26

Le Rebase Git sur GitLab, un must-have pour notre code review process

23/04/26

super l'explication sur l'opération de rebase sur gitlab

23/04/26

La conclusion récapitule bien l'importance. Bon travail

23/04/26

C'est exactement ce que je cherchais pour mes docs internes

Le cas d'usage sur l'ajout de contenu sur la branche est très représentatif

Rejoindre la communauté

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

S'inscrire