Git : `merge` ou `rebase`, lequel utiliser ?
poze 4 months ago223 gadefr
Dans mon équipe, certains font git merge main dans leur branche, d'autres git rebase main. Quelle est la différence et laquelle adopter ?
Dyagnostik IA
Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.
1 Repons
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.
Konekte pou di lòt moun si li te mache.
Sign in and verify your email to post an answer.