Próbuję przesłać mój projekt (wszystkie pliki w nowym repozytorium). Postępuję zgodnie z instrukcjami, ale gdy naciskam przycisk, pojawia git push -u origin master
się ten błąd:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Wystąpił ten błąd wiele razy i nie mogę się dowiedzieć, co robić.
git push --force <remote_repository>
pracował dla mnie.Odpowiedzi:
Jak mówi komunikat o błędzie:
git pull
zanim spróbujeszgit push
. Najwyraźniej twój lokalny oddział nie jest zsynchronizowany z twoim oddziałem śledzenia.W zależności od reguł projektu i przepływu pracy możesz także użyć
git pull --rebase
.źródło
git push --force origin master
. Jeśli napotkasz tego rodzaju problemy więcej niż raz w życiu, przepływ pracy w projekcie jest zepsuty. Funkcje powinny być rozwijane w gałęziach i łączone bez szybkiego przekazywania, a jeśli funkcja „nie powiodła się”, powinieneś cofnąć zatwierdzenie scalania (najlepiej wykonaj testowanie w gałęzi integracji przed scaleniem funkcji do opanowania). Nie mam jednak pojęcia o Eclipse.git pull origin trunk:master
?UWAGA: To nigdy nie jest zalecane użycie git. Spowoduje to zastąpienie zmian na pilocie. Zrób to tylko, jeśli wiesz w 100%, że lokalne zmiany powinny zostać przekazane do zdalnego sterownika głównego.
Spróbuj tego:
git push -f origin master
źródło
git help push
: „Może to spowodować utratę zatwierdzeń przez zdalne repozytorium; używaj go ostrożnie”.to polecenie działało dla mnie dobrze
źródło
Właśnie otrzymałem ten błąd.
Utworzyłem repozytorium github po utworzeniu mojego lokalnego repozytorium git, więc musiałem zaakceptować zmiany w lokalnym przed przekazaniem do github. W tym przypadku jedyną zmianą był plik readme utworzony jako opcjonalny krok podczas tworzenia repozytorium github.
URL repozytorium jest stąd pobierany na stronie github projektu:
Następnie zainicjowałem ponownie (może to nie być potrzebne)
Następnie wciśnij:
źródło
stworzyłem nowe repo w github i miałem ten sam problem, ale miałem też problem z ciągnięciem, więc to zadziałało dla mnie.
źródło
OSTRZEŻENIE:
Wybór „
git pull
” nie jest ZAWSZE rozwiązaniem, więc bądź ostrożny. Możesz napotkać ten problem (ten wymieniony w Q), jeśli celowo zmieniłeś historię swojego repozytorium. W takim przypadku git myli zmiany historii z nowymi zmianami w zdalnym repozytorium. Powinieneś więc wybraćgit push --force
, ponieważ dzwonieniegit pull
celowo cofnie wszystkie zmiany, które wprowadziłeś w swojej historii.źródło
Jeśli
git pull
to nie pomoże, prawdopodobnie wprowadziłeś zmiany (A), a następnie użyłeś ichgit commit --amend
do dodania kolejnych zmian (B). Dlatego git uważa, że możesz stracić historię - interpretuje B jako inne zatwierdzenie, mimo że zawiera wszystkie zmiany z A.Jeśli nikt później nie zmieni repozytorium
A
, możesz to zrobićgit push --force
.Jeśli jednak nastąpią zmiany w
A
stosunku do innej osoby:wtedy musisz zmienić bazę, że osoby zmieniają się z
A
naB
(C
->D
).lub napraw problem ręcznie. Nie myślałem jeszcze, jak to zrobić.
źródło
użyj tego polecenia:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
lubić:
git pull --allow-unrelated-histories origin master
ten błąd występuje, gdy projekty nie mają wspólnego przodka.
źródło
użyj brutalnej siły ;-) Najprawdopodobniej próbujesz dodać folder lokalny, który utworzyłeś przed utworzeniem repo na git.
źródło
Wynika to z faktu, że dokonałeś pewnych zmian w swoim mistrzu, więc projekt poprosił cię, abyś najpierw wyciągnął. Jeśli mimo to chcesz go popchnąć, możesz użyć brutalnej siły, wpisując:
Pamiętaj, aby najpierw zatwierdzić zmiany:
źródło
Spróbuj wykonać polecenie: „git pull origin master”
To zadziałało dla mnie.
Sprawdź ten link: https://help.github.com/articles/dealing-with-non-fast-forward-errors
źródło
Musisz zrobić
jeśli wynik jest podobny do:
to zrób
Upewnij się, że nie masz żadnych oczekujących zatwierdzeń, ponieważ sprawdzenie spowoduje utratę wszystkich niezaangażowanych zmian.
źródło
! [odrzucone] master -> master (non-fast-forward)
Nie panikuj, bardzo łatwo to naprawić. Wszystko, co musisz zrobić, to pociągnąć za sobą, a Twoja gałąź będzie przewijać do przodu:
$ git pull myrepo master
Następnie ponów próbę i wszystko powinno być w porządku:
$ git push github master
źródło
Zdarzyło mi się to, kiedy pracowałem w gałęzi deweloperskiej, a moja gałąź główna nie ma najnowszej aktualizacji.
Więc kiedy próbowałem uzyskać push z gałęzi developerskiej, miałem ten błąd.
Naprawiłem to, przełączając się na gałąź master, git pull, a następnie wróciłem, aby rozwinąć gałąź i git push.
źródło
Miałem ten problem na maszynie programistycznej.
dev
Oddział pchał w porządku, alemaster
oddział dał mi (przygit push
ing kiedy będąc nadev
oddziale):Więc próbowałem:
Co dało mi:
Dowiedziałem się, że brakuje gałęzi master
.git/config
i dodał:Potem
git push
działało również dobrze nadev
oddziale.źródło
Mój pilot nie był zsynchronizowany z lokalnym, więc to zadziałało dla mnie
git pull --rebase
i upewnij się, że kiedy to zrobisz
git pull
, powinno być napisane: Już aktualne, a teraz jesteś gotowy, aby przejść do źródłazakładając, że już masz
git remote add origin remote repository URL
robić
Zrzut ekranu mówi wszystko
Alternatywnie możesz to zrobić
źródło
Miałem to samo co problem. Używam Git Totoise. Wystarczy kliknąć prawym przyciskiem myszy -> TotoiseGit -> Oczyść. Teraz możesz naciskać na Github. Działa to dobrze ze mną: D
źródło
Wynika to z tego, że wprowadziłeś sprzeczne zmiany do jego wzorca. A twój serwer repozytorium nie jest w stanie powiedzieć ci tego słowami, więc daje ten błąd, ponieważ nie jest dla niego kwestią radzenia sobie z tymi konfliktami, więc prosi cię o zrobienie tego sam. Tak jak ?
1-
git pull
Spowoduje to scalenie kodu z repozytorium z kodem administratora witryny. Konflikty są pokazywane.2- traktuj te konflikty manualemente.
3-
I presto, twój problem został rozwiązany.
źródło
Jedyne, co udało mi się rozwiązać, to usunięcie lokalnego i repozytorium git i utworzenie go ponownie na obu końcach. Na razie działa dobrze.
źródło
Jeśli ktoś ma ten błąd podczas próby wypchnięcia do heroku, po prostu zamień „origin” na „heroku” w następujący sposób: git push -f heroku master
źródło
Spróbuj tego, w moim przypadku to działa
źródło
Może to być również spowodowane błędem nazwy podczas nadawania nazwy Repo. Jeśli którakolwiek z powyższych odpowiedzi nie zadziałała. To zadziałało dla mnie:
Usuń to repozytorium i utwórz nowe, a następnie spróbuj ponownie wykonać następujące polecenia:
jeśli program dodawania pochodzenia już istnieje, użyj tego zamiast tego:
źródło