git does not (по умолчанию) позволяет вам нажимать на ветвь что-нибудь, что «перематывает» кончик ответвления. Другими словами, если текущая ветвь ветви не является прямым родителем или предком кончика ответвления, то нажатие будет отклонено.
Вы можете попытаться в любом случае попытаться использовать параметр -f
для git push
или с помощью refspec с ведущим «+», например. git push origin +mybranch:mybranch
.
Обычно удаленные хранилища все равно не позволят этому произойти, потому что вы рискуете потерять фиксации, если разные люди могут без разбора нажимать подсказки ветви, которые не включают в себя фиксации, которые у них отсутствуют на локальном компьютере.
Вы можете переопределить это поведение, изменив параметр конфигурации receive.denyNonFastForwards
в удаленном репозитории (при условии, что у вас есть подходящий доступ к удаленному репозиторию).
Если у вас нет такого доступа, вы можете получить может, удалив удаленную ветку и воссоздавая ее.
например.
git push origin :mybranch
git push origin mybranch
Обратите внимание, что более поздние версии мерзавца включают параметр конфигурации receive.denyDeletes
, который, если установлено, предотвратить это потенциально опасный обходной путь от работы.
Ничего, я не знал о denyNonFastForwards: Я предположил, что вам нужен крючок для обеспечения этого. – araqnid