Подтвердить что ты не робот

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

Скажем, origin/master имеет commit A--B--C, а my local/master имеет commit A--B--D.

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

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

Есть ли разница в полученном дереве компиляции?

4b9b3361

Ответ 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 применяет удаленные изменения только в том случае, если их можно быстро перенаправить. От человека:

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

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