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?
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.