git pull --ff-onlygit config --global pull.ff onlygit log --oneline --graph HEAD...@{u}git pull --rebaseОбычный git pull при разошедшихся ветках молча создаёт merge-коммит. На ветке, куда вы просто хотели подтянуть чужие правки, это даёт «ромбы» в истории и коммиты с сообщением Merge branch 'develop' of ..., которые никто не собирался делать.
--ff-only меняет договор: обновиться, если можно просто перемотать указатель вперёд, и отказаться, если нельзя. Отказ здесь — полезный сигнал: у вас есть локальные коммиты, которых нет на сервере, и решение, что с ними делать, стоит принять осознанно.
Дальше два варианта. --rebase перекладывает ваши коммиты поверх удалённых, история остаётся линейной — обычно то, что нужно для своей ветки в работе. Явный git merge уместен, когда сливаются две настоящие линии разработки и слияние — часть истории, а не случайность.
HEAD...@{u} (три точки) показывает коммиты, уникальные для каждой стороны: сразу видно, ваши это правки или чужие. @{u} — сокращение для upstream-ветки, не нужно печатать origin/develop.
git pull origin без имени ветки работает не всегда так, как ожидается: он подтянет настроенную ветку, а если upstream не задан — сообщит, что не знает, откуда тянуть. Указывать ветку явно или настроить upstream надёжнее, чем повторять команду в надежде на другой результат.