web-dev-qa-db-fra.com

git pull --rebase vs git rebase: quel est le danger?

Je ne comprends pas la différence entre git pull --rebase et git rebase, sans aucune autre option.

Je ne comprends pas s'ils sont sûrs, une bonne pratique ou très dangereux.

Puis-je briser l'historique du commit en faisant un git pull --rebase en local?

30
sab

Je ne recommande pas du tout le rebasage, mais uniquement pour les succursales privées. Par privé je veux dire des branches que vous êtes à peu près sûr que vous avez tirées.

Un rebase change le point de départ de la branche en un commit plus récent, fusionnant ainsi tous les commits à ce point. Cela pourrait conduire à fusionner les conflits avec des personnes qui avaient dans leur référentiel l'ancienne base de succursales. Je recommanderais toujours la fusion simple et ne laisserais le rebasage que pour certaines situations (branches de fonctionnalités, par exemple).

Concernant votre question:

  • git rebase rebase la branche que vous voulez.
  • git pull --rebase effectue une extraction + rebase dans les branches que vous tirez. Normalement, un pull va chercher + fusionner.
20
Luis

git pull --rebase est un raccourci pour git fetch puis un simple git rebase, par opposition à la valeur par défaut git merge. La différence pratique est qu'appliquer uniquement ce dernier ne fetch aucun nouveau commit de votre télécommande avant de rebaser votre code par dessus, car cela ne prendrait en compte que ce que votre dépôt local connaît déjà.

Il convient également de mentionner que la fusion des conflits apparaîtrait de la même manière qu'un tirage git normal.

12
everton