Ответ 1
На странице git config
man:
receive.denyNonFastForwards
Если установлено значение true, git -receive-pack будет отклонять обновление ref, которое не является быстрым. Используйте это, чтобы предотвратить такое обновление через push, даже если это нажатие принудительно. Эта переменная конфигурации устанавливается при инициализации общего репозитория.
Сервер, на который вы пытаетесь нажать, включил этот параметр. Итак, короткий ответ: в этом случае вы не сможете git push --force
.
Чтобы получить правильную версию ветки на удаленном компьютере, вам нужно будет сделать новую фиксацию на кончике ветки, которая вернет ее в правильное состояние. Если в настоящий момент вы выполняете фиксацию для правильного состояния, вы можете запустить следующее:
$ git reset --soft <remote>/<branch> # point the ref back to the remote, but
# keep the index and working tree
$ git commit # make the 'correction' commit
$ git push