Ich versuche mein Projekt zu pushen (alle Dateien in einem neuen Repository). Ich folge den Schritten, aber wenn ich mit git push -u origin master
drücke, erhalte ich diesen Fehler:
! [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.
Ich habe diesen Fehler oft erhalten und kann nicht herausfinden, was ich tun soll.
git push --force <remote_repository>
arbeitete für mich.Antworten:
Wie die Fehlermeldung sagt:
git pull
bevor Sie es versuchengit push
. Anscheinend ist Ihre lokale Niederlassung nicht mit Ihrer Tracking-Niederlassung synchron.Abhängig von den Projektregeln und Ihrem Workflow möchten Sie möglicherweise auch verwenden
git pull --rebase
.quelle
git push --force origin master
. Wenn Sie mehr als einmal in Ihrem Leben auf solche Probleme stoßen, ist Ihr Projektworkflow unterbrochen. Features sollten in Zweigen entwickelt und ohne schnellen Vorlauf zusammengeführt werden. Wenn ein Feature "fehlgeschlagen" ist, sollten Sie das Zusammenführungs-Commit zurücksetzen (führen Sie Ihre Tests vorzugsweise zuerst in einem Integrationszweig durch, bevor Sie ein Feature zum Master zusammenführen). Keine Ahnung von Eclipse.git pull origin trunk:master
?HINWEIS: Dies ist niemals eine empfohlene Verwendung von Git. Dadurch werden Änderungen auf der Fernbedienung überschrieben. Tun Sie dies nur, wenn Sie zu 100% wissen, dass Ihre lokalen Änderungen an den Remote-Master übertragen werden sollen.
Versuche dies:
git push -f origin master
quelle
git help push
: "Dies kann dazu führen, dass das Remote-Repository Commits verliert. Gehen Sie vorsichtig damit um."Dieser Befehl hat bei mir gut funktioniert
quelle
Ich habe gerade diesen Fehler erhalten.
Ich habe nach dem Erstellen meines lokalen Git-Repositorys ein Github-Repository erstellt, daher musste ich die Änderungen in local akzeptieren, bevor ich zu github pushe. In diesem Fall war die einzige Änderung die Readme-Datei, die als optionaler Schritt beim Erstellen des Github-Repositorys erstellt wurde.
Die Repository-URL finden Sie hier auf der Projekt-Github-Seite:
Ich habe dann neu initialisiert (dies wird möglicherweise nicht benötigt)
Dann drücken Sie:
quelle
Ich hatte ein neues Repo in Github erstellt und hatte das gleiche Problem, aber es hatte auch Probleme beim Ziehen, also funktionierte dies für mich.
quelle
WARNUNG:
Ein '
git pull
' zu wählen ist nicht IMMER eine Lösung, seien Sie also vorsichtig. Möglicherweise tritt dieses Problem auf (das im Q erwähnte), wenn Sie Ihren Repository-Verlauf absichtlich geändert haben. In diesem Fall verwechselt git Ihre Verlaufsänderungen mit neuen Änderungen in Ihrem Remote-Repo. Sie sollten sich also für a entscheidengit push --force
, da durch das Aufrufengit pull
absichtlich alle Änderungen rückgängig gemacht werden, die Sie an Ihrem Verlauf vorgenommen haben.quelle
Wenn
git pull
dies nicht hilft, haben Sie wahrscheinlich Ihre Änderungen vorgenommen (A) und danachgit commit --amend
einige weitere Änderungen hinzugefügt (B). Daher glaubt git, dass Sie den Verlauf verlieren können - es interpretiert B als ein anderes Commit, obwohl es alle Änderungen von A enthält.Wenn niemand das Repo danach ändert
A
, können Sie dies tungit push --force
.Wenn es jedoch Änderungen
A
von einer anderen Person gibt:dann müssen Sie neu festlegen, dass Personen von
A
zuB
(C
->D
) wechseln .oder beheben Sie das Problem manuell. Ich habe noch nicht darüber nachgedacht, wie ich das machen soll.
quelle
Verwenden Sie diesen Befehl:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
mögen:
git pull --allow-unrelated-histories origin master
Dieser Fehler tritt auf, wenn Projekte keinen gemeinsamen Vorfahren haben.
quelle
benutze Brute Force ;-) Höchstwahrscheinlich versuchst du, einen lokalen Ordner hinzuzufügen, den du erstellt hast, bevor du das Repo auf Git erstellt hast.
quelle
Dies liegt daran, dass Sie einige Änderungen an Ihrem Master vorgenommen haben, sodass das Projekt Sie auffordert, zuerst zu ziehen. Wenn Sie es trotzdem drücken möchten, können Sie Brute Force anwenden, indem Sie Folgendes eingeben:
Denken Sie daran, zuerst Ihre Änderungen zu übernehmen:
quelle
Versuchen Sie diesen Befehl: "git pull origin master"
Es hat bei mir funktioniert.
Überprüfen Sie diesen Link: https://help.github.com/articles/dealing-with-non-fast-forward-errors
quelle
Du musst tun
wenn die Ausgabe so etwas wie:
dann mach
Stellen Sie sicher, dass Sie keine ausstehenden Commits haben, da beim Auschecken alle nicht festgeschriebenen Änderungen verloren gehen.
quelle
! [abgelehnt] master -> master (nicht schneller vorlauf)
Keine Panik, das ist extrem einfach zu beheben. Alles, was Sie tun müssen, ist einen Pull auszugeben, und Ihre Filiale wird schnell vorspulen:
$ git ziehen Myrepo Master
Versuchen Sie dann Ihren Push erneut und alles sollte in Ordnung sein:
$ git push github master
quelle
Dies ist mir passiert, als ich im Entwicklungszweig war und mein Hauptzweig nicht mit dem neuesten Update ausgestattet ist.
Als ich versuchte, einen Push aus dem Entwicklungszweig zu senden, hatte ich diesen Fehler.
Ich habe es behoben, indem ich zu Master Branch gewechselt habe, Git Pull gezogen habe und dann zurückgegangen bin, um Branch und Git Push zu entwickeln.
quelle
Ich hatte dieses Problem auf einer Entwicklungsmaschine. Der
dev
Ast drückte gut, aber dermaster
Ast gab mir (währendgit push
ich auf demdev
Ast war):Also habe ich versucht:
Welches gab mir:
Ich fand heraus, dass der Hauptzweig fehlte
.git/config
und fügte hinzu:Danach hat
git push
auch amdev
Ast gut funktioniert .quelle
Meine Fernbedienung war nicht mit der lokalen Fernbedienung synchronisiert, daher funktionierte dies für mich
git pull --rebase
und stellen Sie sicher, wenn Sie es
git pull
erneut tun , sollte es bereits aktuell sein und jetzt sind Sie bereit, zum Ursprung zu drängenvorausgesetzt du hast schon
git remote add origin remote repository URL
machen
Der Screenshot sagt alles
Alternativ können Sie dies tun
quelle
Ich hatte das gleiche Problem. Ich benutze Git Totoise. Klicken Sie einfach mit der rechten Maustaste -> TotoiseGit -> Aufräumen. Jetzt kannst du zu Github pushen. Bei mir hat es gut funktioniert: D.
quelle
Dies liegt daran, dass Sie widersprüchliche Änderungen am Master vorgenommen haben. Und Ihr Repository-Server kann Ihnen das mit diesen Worten nicht sagen, daher gibt es diesen Fehler, weil es nicht seine Aufgabe ist, diese Konflikte für Sie zu lösen, und er bittet Sie, dies selbst zu tun. Wie ?
1-
git pull
Dadurch wird Ihr Code aus Ihrem Repository mit dem Code Ihres Site-Masters zusammengeführt. So werden Konflikte gezeigt.2- Behandeln Sie diese Handbuchkonflikte.
3-
Und schon ist Ihr Problem gelöst.
quelle
Das einzige, was ich in der Lage war, dieses Problem zu beheben, war das lokale und Git-Repo zu löschen und das gleiche an beiden Enden erneut zu erstellen. Funktioniert vorerst gut.
quelle
Wenn jemand diesen Fehler hat, während er versucht, auf Heroku zu pushen, ersetzen Sie einfach 'origin' durch 'heroku' wie folgt: git push -f heroku master
quelle
Versuchen Sie dies, in meinem Fall funktioniert es
quelle
Dies kann auch durch einen Namensfehler verursacht werden, der beim Geben des Namens für das Repo verursacht wurde. Wenn eine der oben genannten Antworten nicht funktioniert hat. Dies hat bei mir funktioniert:
Löschen Sie dieses Repo, erstellen Sie ein neues und wiederholen Sie die folgenden Befehle:
Wenn bereits Add Origin Origin Shows vorhanden sind, verwenden Sie stattdessen Folgendes:
quelle