Miałem repozytorium, które miało kilka złych poprawek (D, E i F w tym przykładzie).Reset Git - trudne i zdalne repozytorium
A-B-C-D-E-F Master i początek/Master
I został zmodyfikowany lokalne repozytorium specyficznie z git reset --hard
. Wziąłem gałąź przed resetem więc teraz mam repo, który wygląda tak:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Teraz potrzebne jakieś części tych złych zobowiązuje więc wiśniowe zrywane bity potrzebowałem i wykonanych kilka nowych zobowiązuje więc teraz mam następujące lokalnie:
A-B-C-G-H master
\ D-E-F old_master
Teraz chcę wprowadzić ten stan rzeczy do zdalnego repo. Jednak, gdy próbuję zrobić git push
Git grzecznie daje mi od szczotki:
$ 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 [email protected]:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:myrepo.git'
Jak uzyskać zdalnego repo do podjęcia aktualny stan lokalnego repo?
Jest to "prawie" duplikat kilku "jak przesłać zmienione pytania dotyczące historii", np. zobacz odpowiedź tutaj http://stackoverflow.com/questions/253055/how-do-i-push-amended-commit-to-the-remote-git-repo/255080#255080 –
To prawda i przeszukałem StackOverflow dla odpowiedź przed wysłaniem. Jednak moje poszukiwania tylko pojawiły się odpowiedzi, w których git push - force naprawił problem. Dziękuję za link do Twojego wpisu :) – robertpostill
Wkrótce (git1.8.5, Q4 2013) będziesz w stanie [zrobić "git push -force" bardziej ostrożnie] (http://stackoverflow.com/a/18505634/6309) . – VonC