Junior
Que signifie effectuer un rebase sur la branche principale?
sobes.tech IA
Réponse de l'IA
Exécuter git rebase main depuis la branche courante signifie déplacer le point de référence de votre branche vers le dernier commit de main.
Cela se fait de la manière suivante :
- Git sauvegarde temporairement les commits de votre branche actuelle qui apparaissent après le point où elle a divergé de
main. - Votre branche courante est réinitialisée à l’état de la branche
main. - Les commits sauvegardés sont appliqués en séquence sur le dernier commit de
main.
Principales différences avec merge :
| Caractéristique | Rebase |
Merge |
|---|---|---|
| Histoire | Linéaire, sans commits de fusion | Non linéaire, avec commits de fusion |
| Clarté de l’histoire | Plus claire, plus facile à comprendre | Peut être plus difficile à comprendre |
| Conflits | Résolus pour chaque commit individuellement | Résolus une fois pour toutes les modifications |
| Application | Préféré pour les branches petites et personnelles | Préféré pour l’intégration des branches publiques |
Exemple :
Histoire initiale :
A -- B -- C (main)
\
D -- E (feature)
Après git checkout feature et git rebase main :
A -- B -- C (main)
\
D' -- E' (feature)
Où D' et E' sont les commits D et E avec une nouvelle référence parentale.
Problèmes possibles :
- Conflits : Peuvent survenir lors de l’application de chaque commit.
- Réécriture de l’histoire :
rebasemodifie les IDs des commits. C’est dangereux si vous faites unrebasesur une branche déjà publiée et utilisée par d’autres développeurs. Dans ce cas, il peut être nécessaire de faire un push forcé (git push --force), ce qui doit être fait avec précaution.