Разница между git pull --rebase и git pull --ff-only


скажем origin/master совершил A--B--C и меня local/master совершил A--B--D.

что произойдет, если я использую git pull --rebase ?

что произойдет, если я использую git pull --ff-only ?

есть ли разница в результирующем дереве фиксации ?

1 52

1 ответ:

что произойдет, если я использую git pull --rebase ?

git pull --rebase - это примерно эквивалентно

git fetch
git rebase origin/master

т. е. ваши удаленные изменения (C) будет применяться до локальных изменений (D), что приводит к следующим дерева

A -- B -- C -- D

что произойдет, если я использую git pull --ff-only ?

это не удастся.

git pull --ff-only соответствует к

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

--ff-only применяет удаленные изменения только в том случае, если они могут быть быстро переадресованы. От мужчины:

отказ от слияния и выхода с ненулевым статусом, если текущая головка уже не обновлена или слияние не может быть разрешено как быстрая перемотка вперед

поскольку ваши локальные и удаленные ветви разошлись, они не могут быть решены с помощью быстрой перемотки вперед и git pull --ff-only потерпит неудачу.