Git : `merge` ou `rebase`, lequel utiliser ?

posée 5 months ago230 vuesfr

3

Dans mon équipe, certains font git merge main dans leur branche, d'autres git rebase main. Quelle est la différence et laquelle adopter ?

Diagnostic IA

Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.

posée 5 months ago

1 réponse

7
✓
✓ Réponse acceptée

Les deux intègrent les changements de main dans ta branche, mais l'historique obtenu diffère :

- merge crée un commit de fusion. L'historique est fidèle (on voit que les branches ont divergé), mais il est plus touffu. - rebase rejoue tes commits par-dessus main. L'historique est linéaire et lisible, mais tes commits sont réécrits (nouveaux SHA).

La règle d'or : ne rebase jamais une branche partagée que d'autres ont déjà récupérée. Rebaser ta branche de fonctionnalité personnelle est sans danger.

Un flux courant et propre :

git fetch origin
git rebase origin/main          # mettre ta branche à jour
# résoudre les conflits, puis git rebase --continue
git push --force-with-lease     # jamais --force tout court

Puis fusion de la PR avec squash ou merge, selon la convention de l'équipe.

--force-with-lease refuse d'écraser le distant si quelqu'un d'autre y a poussé entre-temps.

Connectez-vous pour dire si ça a marché.

answered 5 months ago

Sign in and verify your email to post an answer.