Не работает git pull и вылетает непонятная ошибка

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

Вбиваю git pull и получаю:

From blablabla.net:wr/BlaBlaProject
 ! [rejected]          epic/blablaBranch -> origin/epic/blablaBranch  (non-fast-forward)

Эта ветка в которой я не разу не работал и не выкачивал себе локально.

Пробовал выкачать ее себе, а потом переключиться на свою ветку и снова сделать pull, но все равно ошибка.

Не понимаю природу ошибки, так как git не пишет в чем конкретно проблема


Ответы (1 шт):

Автор решения: Герман Борисов

Вероятнее всего причиной ошибки является то, что в удалённом репозитории кто-то принудительно переписал историю (push --force).

В этом случае проще всего удалить локальную ссылку на удалённую ветку командой git branch -r -d origin/epic/blablaBranch, и заново выкачать её вместе с остальными через git fetch.

UPD

Другой возможной причиной является то, что у вас запрещён merge при pull. То есть запрещено выполнять pull для веток, в которые вы локально коммитите. Это запрет включается или параметром --ff-only в смой команде git pull или в конфиге в параметре pull.ff значением only. Проверить значение в конфиге можно командой

git config --get pull.ff

Если действительно стоит такой запрет, то вместо pull делайте последовательно fetch и merge с нужными параметрами.

→ Ссылка