X

Git : commande de rebase


Introduction

Git est rebase est une puissante commande Git qui permet aux développeurs de réappliquer les modifications d’une branche à une autre. C’est un moyen de modifier l’historique des commits d’une branche, vous permettant de changer l’ordre, le contenu ou le message de vos commits. Dans cet article, nous allons plonger dans les détails de la façon dont le rebase commande fonctionne, pourquoi vous voudriez l’utiliser et fournissez quelques exemples pour vous aider à démarrer.

Pourquoi utiliser Rebase ?

git rebase peut être utilisé pour accomplir une variété de tâches, mais son objectif principal est d’intégrer les changements d’une branche à une autre. Ceci est généralement utilisé lorsque vous avez une branche de fonctionnalité que vous souhaitez fusionner dans votre branche principale (par exemple master), mais vous voulez vous assurer que les modifications sont correctement appliquées en plus de l’état actuel de la branche principale.

Un avantage à utiliser git rebase sur une autre commande, comme git merge, est qu’il crée un historique de validation linéaire, plutôt qu’un historique de branche et de fusion. Cela peut faciliter la compréhension de l’historique du projet et la résolution des problèmes. De plus, la rebase peut aider à réduire le nombre de conflits de fusion qui se produisent lorsque vous fusionnez finalement votre branche de fonctionnalité dans la branche principale.

Exemple d’utilisation de Rebase

Pour mieux comprendre comment git rebase fonctionne, passons en revue un exemple simple. Imaginez que vous travaillez sur une branche de fonctionnalité appelée new-feature et que vous souhaitez l’intégrer dans master bifurquer. Pour ce faire, vous devez d’abord basculer vers le master branche à l’aide de la commande suivante :

$ git checkout master

Ensuite, vous exécuterez la commande suivante pour démarrer le processus de rebase :

$ git rebase new-feature

Cela indique à Git de prendre toutes les modifications qui existent dans le new-feature branche et appliquez-les au-dessus du courant master bifurquer. S’il y a des conflits entre les deux branches, Git vous demandera de les résoudre manuellement.

Une fois le rebase terminé, vous devriez avoir un historique de validation linéaire sur le master branche, avec tous les changements de new-feature proprement appliqué au-dessus de l’état actuel de master.

Option pour le rebase Commande

Le rebase de Git a quelques options utiles qui peuvent être utilisées pour personnaliser son comportement. Voici quelques exemples :

--onto: vous permet de rebaser une plage spécifique de commits sur une branche différente. Par exemple, vous pouvez utiliser git rebase --onto new-base old-base feature-branch pour rebaser tous les commits de la branche de fonctionnalité qui viennent après old-base et avant new-base sur une nouvelle branche.
--interactive ou -i: lance une session de rebase interactive, vous permettant de modifier, réorganiser ou supprimer manuellement des commits dans le cadre du processus de rebase.
--continue: continue le rebasage après la résolution d’un conflit de fusion.
--abort: arrête une rebase en cours et restaure la branche à son état d’origine.
--skip: Ignorer le patch actuel.
--autostash: stocke automatiquement toutes les modifications non validées lorsque l’opération démarre, puis les réapplique une fois la rebase terminée.

Vous pouvez afficher toutes les options disponibles en exécutant le git help rebase commande pour afficher la documentation.

Conclusion

En conclusion, git rebase est un outil puissant qui permet aux développeurs d’intégrer proprement les modifications d’une branche à une autre tout en conservant un historique de validation linéaire.

Par défaut, Git utilise la stratégie de fusion “fast-forward” pour intégrer les changements, mais rebase fournit une alternative plus flexible qui peut aider à réduire les conflits de fusion et fournir un historique plus propre.

Avec les exemples et les options couverts dans cet article, vous devriez être sur la bonne voie pour maîtriser git rebase et l’utiliser pour rationaliser votre workflow de développement.