2024 11 25 092640

Introduction#

Ce billet de blog explique comment utiliser git rebase pour réorganiser les commits dans une branche. Cette technique est utile pour maintenir un historique de version propre et facile à suivre, en particulier lors de la collaboration sur des projets en équipe.

Note : git rebase est une opération puissante qui modifie l’historique. Utilisez-la avec précaution, surtout sur des branches partagées.


Pourquoi utiliser git rebase ?#

git rebase permet de réorganiser ou de modifier les commits d’une branche. Cela peut être utile pour :

  • Supprimer des commits inutiles
  • Regrouper plusieurs petits commits en un seul
  • Réorganiser les commits par ordre chronologique
  • Modifier le message de commit

Exemple pratique#

Supposons que vous avez une branche feature avec les commits suivants :

commit 1: Ajouter fonctionnalité A
commit 2: Corriger bug dans A
commit 3: Ajouter documentation pour A
commit 4: Ajouter fonctionnalité B

Vous voulez regrouper les commits liés à A (1, 2, 3) en un seul commit, et les placer avant B.


Étapes pour effectuer un rebase#

  1. Sélectionnez la branche à rebase :

    git checkout feature
  2. Démarrez le rebase interactif :

    git rebase -i HEAD~4

    HEAD~4 signifie les 4 derniers commits. Vous pouvez ajuster ce nombre selon votre besoin.

  3. Dans l’éditeur qui s’ouvre :

    • Remplacez pick par squash pour les commits que vous voulez fusionner.
    • Remplacez pick par reword pour modifier le message de commit.
    • Supprimez les lignes des commits que vous voulez supprimer.

    Exemple de configuration :

    pick a1b2c3d Ajouter fonctionnalité A
    squash e4f5g6h Corriger bug dans A
    squash i7j8k9l Ajouter documentation pour A
    pick m0n1p2q Ajouter fonctionnalité B
  4. Enregistrez et quittez l’éditeur.

    Git vous demandera de rédiger un nouveau message pour le commit fusionné.

  5. Vérifiez les résultats :

    git log --oneline --graph

    Vous devriez voir un historique réorganisé.


Bonnes pratiques#

  • Utilisez git rebase uniquement sur des branches privées ou non partagées.
  • Évitez de faire un rebase sur des branches publiques comme main ou develop.
  • Si vous devez partager des modifications après un rebase, utilisez git push --force avec précaution.

En résumé#

git rebase est un outil puissant pour nettoyer et organiser l’historique de version. En le maîtrisant, vous pouvez rendre vos projets plus clairs et plus professionnels. Mais souvenez-vous : modifiez l’historique avec prudence.

Pour en savoir plus, consultez la documentation officielle de Git.