Exécution d'une Opération de Rebase
Glissez pour afficher le menu
Rebaser des modifications sur la branche main
Avant de pouvoir rebaser nos modifications, il faut d'abord se placer sur la branche main et récupérer les dernières modifications :
git checkout main
git pull
Examinons maintenant l’arbre des commits :
git log --graph --oneline --all
À ce stade, les branches main et feature/payment possèdent toutes deux des commits après leur ancêtre commun le plus récent. Cela signifie qu'une fusion en avance rapide n'est pas possible.
Si nous fusionnions ces branches, une fusion à trois voies aurait lieu. Cependant, pour conserver un historique linéaire, il est préférable d'effectuer un rebase de la branche feature/payment sur la branche main. Cela s'effectue en se plaçant sur la branche feature/payment et en exécutant la commande git rebase :
git checkout feature/payment
git rebase main
Fusion en avance rapide
Puisque le rebasage a réussi, examinons à nouveau notre arbre des commits :
git log --graph --oneline
Comme prévu, l’historique des commits est désormais linéaire avec le dernier commit sur la branche feature/payment. Nous pouvons maintenant effectuer une fusion en avance rapide sur la branche main :
git checkout main
git merge feature/payment
Vérification que les deux branches pointent vers le même commit en consultant le dernier commit :
git log -n 1
Suppression de la branche de fonctionnalité
La branche main contient désormais le dernier commit avec le système de paiement implémenté, il est donc possible de supprimer en toute sécurité la branche feature/payment en local et à distance. La commande suivante permet de supprimer la branche distante :
git push --delete origin feature/payment
Nous pouvons maintenant supprimer la branche locale :
git branch -d feature/payment
Enfin, toutes les modifications apportées peuvent être poussées vers le dépôt distant :
git push
Pour vérifier que la branche feature a été supprimée à la fois localement et à distance, vous pouvez exécuter la commande suivante, qui liste toutes les branches locales et distantes (-a signifie toutes) :
git branch -a
Comme vous pouvez le voir, la branche feature/payment a été supprimée avec succès, et il ne reste plus que deux branches : main et john/test avec leurs équivalents distants.
Globalement, le rebasage fonctionne bien pour les modifications locales qui n'ont pas encore été partagées, mais il peut causer des problèmes importants pour les modifications déjà publiées sur un dépôt distant et éventuellement téléchargées par d'autres collaborateurs. Le rebasage de commits utilisés par d'autres peut créer de la confusion et des conflits en raison de la réécriture de l'historique des commits.
En règle générale, il est conseillé d'éviter de rebaser des modifications qui ont été poussées vers des dépôts distants afin de prévenir ces problèmes.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion