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