La seconde façon de combiner les contenus de deux branches est rebase. Rebase prend un ensemble de commits, les "recopie", et les ajoute en bout de chaîne à un autre endroit.

Bien que cela puisse sembler compliqué, l'avantage de rebase est de permettre d'obtenir une simple séquence linéaire de commits. L'historique du dépôt sera bien plus propres si seul rebase est autorisé (plutôt que merge).

Voyons rebase en action…

Avant le rebase

Git before commit


Nous voudrions transférer notre travail de la branche 'bugFix' directement sur le travail existant dans 'master'. Ainsi on aurait l'impression que ces deux travaux ont été développés séquentiellement alors qu'en réalité ils ont été réalisés en parallèle.

Utilisons la commande git rebase.

Après le rebase

Git after commit


Désormais, le travail de la branche 'bugFix' est juste en haut de la branche 'master' et nous avons une belle séquence linéaire de commits.

Notez que le commit C3 existe toujours quelque part (il est en grisé sur l'arbre), et C3' est la "copie" que nous avons créée sur master avec rebase.

Résoudre le challenge