Wydaje został przepisany historii (SHA-1 wiąże się ze swoimi popełniają) w gałęzi master
oznacza to, że nie można już przesunąć w trybie fast-forward
przycisk + siłami opanować impuls do podjęcia miejsce:..
by z opcjonalnym prowadzeniem +, możesz powiedzieć git, aby zaktualizować ref <dst>
, nawet jeśli aktualizacja nie jest szybkim przejściem do przodu.
Uwaga: może to być złe, jeśli ktoś jeszcze sklonował twoje repozytorium, ponieważ nie będzie już w stanie po prostu wyciągnąć głównej gałęzi bez konfliktu.
Zobacz także ten SO answer for more.
Uwaga: jak wspomniano by Junio C. Hamano:
Istnieją dwa niezależne mechanizmy bezpieczeństwa:
wysyłanie bezpieczeństwo końcowy może być zastąpione przez "git push --force
" i/lub za pomocą refspec z prefiksem z "+
");
Bezpieczeństwo końcowego odbiorcy może zostać zmienione przez zmienną konfiguracyjną receive.denynonfastworwards
repozytorium, do którego wepchnąłeś.
ostatnie domyślnie „niebezpieczne”, ale jeśli bezpieczeństwa jest aktywowany w repozytorium zmuszając od strony wysyłającej nie wyłączy się. IOW, oba końce muszą zgodzić się na dopuszczenie niebezpiecznych zachowań.
Jak wspomniano w Git FAQ, możliwym sposobem działania jest:
Najbardziej prawdopodobnym powodem jest to, że trzeba wyciągnąć z pilota jako pierwszy. Możesz zobaczyć, jakie zmiany ma strona zdalna, najpierw pobierając, a następnie sprawdzając rejestr.Na przykład,
$ git fetch origin
$ git log master..origin/master
będzie lista wszystkich zmian zdalny bocznego, że strona nie jest. Jeśli chcesz graficzną reprezentację, użyj gitk --left-right master...origin/master
.
Strzałki po lewej stronie to zmiany, które chcesz nacisnąć, strzałki po prawej stronie oznaczają zmiany po stronie zdalnej.
Inne rozwiązanie (co właśnie zrobiłeś):
$ git push origin +branchname
To wymusi aktualizację. Jeśli nie masz uprawnień, to czasami to będzie działać:
$ git push origin :branchname
$ git push origin +branchname
czyli usunąć zdalnie pierwszy oddział (często jest to dozwolone), a następnie ponownie wcisnąć „nowe” (albo przewijany).
Należy pamiętać, że jeśli zwiniesz gałęzie, inni mogą mieć problem z pociągnięciem.
Istnieje szansa, że połączą się w oddziale, który pobrali z nowym, który opublikowałeś, skutecznie zachowując zmiany, których próbujesz się pozbyć.
Jednak to tylko ich kopie będą miały złe wersje. Z tego powodu przewijanie gałęzi jest uważane za łagodnie antyspołeczne. Niemniej jednak często jest to właściwe.
Dodano inne rozwiązanie w odpowiedzi na Twój komentarz. – VonC