Avevo un repository che aveva dei brutti commit (D, E e F per questo esempio).
Master ABCDEF e origine / master
Ho modificato il repository locale specificatamente con a git reset --hard. Ho preso un ramo prima del reset, quindi ora ho un repository che assomiglia a:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Ora avevo bisogno di alcune parti di quei commit errati, quindi ho scelto i pezzi di cui avevo bisogno e ho fatto alcuni nuovi commit, quindi ora ho i seguenti localmente:
A-B-C-G-H master
\ D-E-F old_master
Ora voglio spingere questo stato di cose al repository remoto. Tuttavia, quando provo a fare un git pushGit educatamente mi dà il pennello:
$ 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'
Come posso ottenere il repository remoto per prendere lo stato corrente del repository locale?
git push -forcepiù attentamente .