Допустим, 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
в локальном изменении нет фиксации ? Обе команды будут эквивалентны?