Ich hatte ein Repository mit einigen schlechten Commits (D, E und F für dieses Beispiel).
ABCDEF-Master und Herkunft / Master
Ich habe das lokale Repository speziell mit a geändert git reset --hard
. Ich habe vor dem Zurücksetzen einen Zweig genommen, also habe ich jetzt ein Repo, das aussieht wie:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Jetzt brauchte ich einige Teile dieser schlechten Commits, also wählte ich die benötigten Teile aus und machte einige neue Commits, sodass ich jetzt vor Ort Folgendes habe:
A-B-C-G-H master
\ D-E-F old_master
Jetzt möchte ich diesen Zustand auf das Remote-Repo übertragen. Wenn ich jedoch versuche, einen git push
Git zu machen, gibt mir das höflich die Bürste ab:
$ 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'
Wie kann ich das Remote-Repo dazu bringen, den aktuellen Status des lokalen Repos zu erfassen?
git push -force
sorgfältiger zu tun .