У меня был репозиторий с плохими коммитами (D, E и F для этого примера).
ABCDEF мастер и происхождение / мастер
Я изменил местный репозиторий специально с git reset --hard. Я взял ветку до сброса, так что теперь у меня есть репозиторий, который выглядит так:
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
Теперь я хочу перенести это положение на удаленное репо. Тем не менее, когда я пытаюсь сделать git pushGit вежливо, я отмахиваюсь:
$ 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'
Как заставить удаленное репо принять текущее состояние локального репо?
git push -forceболее осторожно .