781 Stimmen

Kann nicht zu GitHub pushen - sagt ständig, dass eine Zusammenführung erforderlich ist

Ich bin auf ein Problem gestoßen, als ich versucht habe, meinen Code auf GitHub zu veröffentlichen.

Pushing to git@github.com:519ebayproject/519ebayproject.git
To git@github.com:519ebayproject/519ebayproject.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:519ebayproject/519ebayproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Ich habe noch nichts in das Repository eingefügt, warum muss ich also etwas ziehen?

6 Stimmen

Beachten Sie, dass dies auch bei Zweigen passieren kann, die zuvor lokal besucht wurden und für die Commits im Upstream-Repository vorgenommen wurden. Gibt es eine einfache Möglichkeit, einen solchen alten Zweig schnell weiterzuleiten oder Git ihn im lokalen Repository einfach vergessen zu lassen?

52 Stimmen

@ThorbjørnRavnAndersen - Ich habe es geschafft, dieses Szenario mit "git push -f" zu beheben, was Git dazu zu bringen schien, seine imaginären Probleme zu vergessen :)

0 Stimmen

50voto

Teo Punkte 535

Manchmal vergaßen wir das Ziehen und arbeiteten viel in der örtlichen Umgebung.

Wenn jemand schieben will, ohne zu ziehen,

git push --force

funktioniert. Dies ist nicht empfehlenswert, wenn Sie mit anderen Menschen zusammenarbeiten, aber wenn Ihre Arbeit eine einfache Sache oder ein persönliches Spielzeugprojekt ist, ist dies eine schnelle Lösung.

35voto

xiatica Punkte 1476

Einige von Ihnen erhalten diese Fehlermeldung, weil Git nicht weiß, welchen Zweig Sie zu pushen versuchen.

Wenn Ihre Fehlermeldung auch Folgendes enthält

error: failed to push some refs to 'git@github.com:jkubicek/my_proj.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you did not intend to push that branch, you may want to
hint: specify branches to push or set the 'push.default' configuration
hint: variable to 'current' or 'upstream' to push only the current branch.

dann sollten Sie die praktischen Tipps von Jim Kubicek befolgen, Git so konfigurieren, dass nur der aktuelle Zweig verschoben wird , um die Standardverzweigung auf aktuell zu setzen.

git config --global push.default current

34voto

Pyuri Sahu Punkte 439
git pull origin branch_name --rebase

Das hat bei mir funktioniert - der Befehl git pull origin branch_name --rebase zieht zunächst Änderungen aus dem entfernten Zweig_name, dann rebase die aktuelle Verzweigung auf den Kopf gestellt.

20voto

Bhavuk Mathur Punkte 1018

Zusätzlich zu den oben genannten Antworten hat bei mir Folgendes funktioniert: -

Szenario -

  1. Ich schob meine_filiale erfolgreich zum Ursprung.
  2. Ich habe noch einige Änderungen vorgenommen.
  3. Als ich versuchte, erneut zu pushen (nachdem ich natürlich add und commit gemacht hatte), erhielt ich die oben genannte Fehlermeldung.

Lösung -

 1. git checkout **my_branch**
 2. git add, commit your changes.
 3. git pull origin **my_branch** (not origin, master, or develop)
 4. git push origin **my_branch**

Proof

19voto

Kailash Bhalaki Punkte 272

Ich hatte das gleiche Problem, was ich tat, war ich zuerst schob es mit Gewalt, indem Sie diese

git push --force

Ich habe dies getan, nachdem ich die Dateien festgeschrieben hatte und eine Fehlermeldung wie die Ihre erhalten habe. Das nächste Mal, als ich auf Github gepusht habe, habe ich getan, was ich tun musste, und dann war alles in Ordnung. Hoffentlich funktioniert das auch bei dir :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X