web-dev-qa-db-fra.com

Différence entre git pull --rebase et git pull --ff-only

Disons Origin/master a validé A--B--C et mon local/master a validé A--B--D.

Que se passera-t-il si j'utilise git pull --rebase?

Que se passera-t-il si j'utilise git pull --ff-only?

Y a-t-il une différence dans l'arbre de validation résultant?

74
Nico

Que se passera-t-il si j'utilise git pull --rebase?

git pull --rebase est à peu près équivalent à

git fetch
git rebase Origin/master

c'est-à-dire que vos modifications à distance (C) seront appliquées avant les modifications locales (D), ce qui donnera l'arborescence suivante

A -- B -- C -- D

Que se passera-t-il si j'utilise git pull --ff-only?

Ça va échouer.

git pull --ff-only Correspond à

git fetch
git merge --ff-only Origin/master

--ff-only applique les modifications à distance uniquement si elles peuvent être transférées rapidement. De l'homme:

Refuse de fusionner et quitte avec un statut différent de zéro sauf si le HEAD actuel est déjà à jour ou si la fusion peut être résolue en avance rapide

Puisque vos succursales locales et distantes ont divergé, elles ne peuvent pas être résolues par une avance rapide et un git pull --ff-only échouerait.

98
Gabriele Petronella