Miałem repozytorium z kilkoma złymi zatwierdzeniami (D, E i F w tym przykładzie).
ABCDEF master i origin / master
Zmodyfikowałem lokalne repozytorium specjalnie za pomocą git reset --hard. Przed resetem wziąłem gałąź, więc teraz mam repozytorium, które wygląda następująco:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Teraz potrzebowałem części tych złych zatwierdzeń, więc wybrałem potrzebne bity i zrobiłem kilka nowych zatwierdzeń, więc teraz mam następujące lokalnie:
A-B-C-G-H master
\ D-E-F old_master
Teraz chcę przekazać ten stan rzeczy do zdalnego repozytorium. Jednak, gdy próbuję zrobić git pushGit, uprzejmie daj mi odpocząć:
$ 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'
Jak sprawić, by zdalne repozytorium przyjęło bieżący stan repozytorium lokalnego?
git push -forceostrożniej .