Допустим, origin/masterесть фиксация, A--B--Cа у меня local/masterесть фиксация A--B--D.
Что будет, если я воспользуюсь git pull --rebase?
Что будет, если я воспользуюсь git pull --ff-only?
Есть ли разница в получившемся дереве коммитов?
Ответы:
Что произойдет, если я использую 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будут работать.
A--B--C.
git pull --rebase --ff-onlyделать? (при условии, что есть C&D)
pullможно вводить коммиты слияния, тогда как вы можете предпочесть работать только с rebase и ff.
Dв локальном изменении нет фиксации ? Обе команды будут эквивалентны?