Eu tinha um repositório que tinha alguns commits ruins (D, E e F para este exemplo).
Mestre ABCDEF e origem / mestre
Eu modifiquei o repositório local especificamente com a git reset --hard
. Peguei uma ramificação antes da redefinição, agora tenho um repositório que se parece com:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Agora, eu precisava de algumas partes desses commits ruins, então selecionei os bits necessários e fiz alguns novos commits; agora, tenho o seguinte localmente:
A-B-C-G-H master
\ D-E-F old_master
Agora, quero levar esse estado de coisas ao repositório remoto. No entanto, quando tento fazer um git push
Git educadamente , não consigo :
$ 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'
Como faço para que o repositório remoto assuma o estado atual do repositório local?
git push -force
mais cuidado .