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

poze 4 months ago224 gadefr

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 ?

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.

poze 4 months ago

1 Repons

7
✓
✓ Repons yo aksepte

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.

answered 4 months ago

Sign in and verify your email to post an answer.