Мерзавец сбросил - трудно и нажатие в удаленный репозиторий

У меня был репозиторий, который имел некоторые плохие фиксации на нем (D, E и F для этого примера).

Ведущее устройство A-B-C-D-E-F и источник/ведущее устройство

Я изменил локальный репозиторий конкретно с a git reset --hard. Я взял ответвление перед сбросом поэтому теперь, у меня есть repo, который похож:

A-B-C master  
     \ D-E-F old_master

A-B-C-D-E-F origin/master

Теперь мне были нужны некоторые части тех плохих фиксаций, таким образом, я избирательно подошел к выбору битов, я нуждался и сделал некоторые новые фиксации поэтому теперь, у меня есть следующее локально:

A-B-C-G-H master
     \ D-E-F old_master

Теперь я хочу продвинуть это положение дел к удаленному repo. Однако, когда я пытаюсь сделать a git push Мерзавец вежливо дает мне кисть прочь:

$ git push origin +master:master --force  
Total 0 (delta 0), reused 0 (delta 0)  
error: denying non-fast forward refs/heads/master (you should pull first)  
To git@git.example.com:myrepo.git  
! [remote rejected] master -> master (non-fast forward)  
error: failed to push some refs to 'git@git.example.com:myrepo.git'  

Как я заставляю удаленный repo брать текущее состояние локального repo?

193
задан Black 29 October 2019 в 05:20
поделиться

1 ответ

Если принудительное нажатие не помогает (« git push --force origin » или « git push --force origin master ») должны будет достаточно), это может означать, что удаленный сервер отказывается от проталкивания без быстрой перемотки либо через конфигурационную переменную receive.denyNonFastForwards (см. описание в git config ), либо через update / pre-receive ловушка.

В более ранней версии Git это ограничение можно обойти, удалив " git push origin: master " (см. ':' перед именем ветки) и затем воссоздав заново " git push origin master "данная ветка.

Если вы не можете изменить это, то единственным решением будет вместо перезаписи истории в создать фиксацию , возвращающую изменения в DEF :

A-B-C-D-E-F-[(D-E-F)^-1]   master

A-B-C-D-E-F                             origin/master
277
ответ дан 23 November 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: