
Benutzer1353717
Ich bin neu in GitHub. Heute bin ich auf ein Problem gestoßen, als ich versucht habe, meinen Code auf GitHub zu übertragen.
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 gepusht, warum muss ich also etwas ziehen?

Nick Rolando
Dies kann dazu führen, dass das Remote-Repository Commits verliert; Verwenden Sie es mit Vorsicht.
Wenn Sie den entfernten Zweig nicht mit Ihrem lokalen Zweig zusammenführen möchten (siehe Unterschiede mit git diff) und einen Kraftstoß ausführen möchten, verwenden Sie die Push-Befehl mit -f
git push -f origin <branch>
wo origin
ist der Name von Ihnen Fernbedienung Repo.
Normalerweise weigert sich der Befehl, eine entfernte Referenz zu aktualisieren, die kein Vorfahre der lokalen Referenz ist, die zum Überschreiben verwendet wurde. Dieses Flag deaktiviert die Prüfung. Dies kann dazu führen, dass das Remote-Repository Commits verliert; Verwenden Sie es mit Vorsicht.

Jake Green
Wie die Nachricht sagt,
Führen Sie die Remote-Änderungen zusammen (z. B. ‘git pull’)
Verwenden git pull
um die neuesten Änderungen aus dem Remote-Repository in Ihr lokales Repository zu ziehen. In diesem Fall erfordert das Pullen von Änderungen eine Zusammenführung, da Sie Änderungen an Ihrem lokalen Repository vorgenommen haben.
Ich werde ein Beispiel und ein Bild zur Erklärung bereitstellen. Nehmen wir an, Ihr letzter Pull vom Ursprung/Zweig war bei Commit B. Sie haben einige Arbeiten abgeschlossen und festgeschrieben (Commit C). Zur gleichen Zeit hat jemand anderes seine Arbeit abgeschlossen und in den Ursprung/Zweig verschoben (Commit D). Es muss eine Zusammenführung zwischen diesen beiden Zweigen geben.
local branch: --- Commit C
/
/
/
origin/branch: Commit A ------ Commit B ---- Commit D
Da Sie derjenige sind, der pushen möchte, zwingt Git Sie, die Zusammenführung durchzuführen. Dazu müssen Sie die Änderungen zuerst aus Ursprung/Zweig ziehen.
local branch: --- Commit C -- Commit E
/ /
/ /
/ /
origin/branch: Commit A ------ Commit B ---- Commit D
Nach Abschluss der Zusammenführung können Sie nun den Ursprung/Zweig schnell zu Commit E vorspulen, indem Sie Ihre Änderungen übertragen.
Git erfordert, dass Sie Merges selbst handhaben, da ein Merge zu Konflikten führen kann.

AYK
Haben Sie Ihren Code vor dem Pushen aktualisiert?
Verwenden git pull origin master
bevor du irgendetwas drückst.
Ich gehe davon aus, dass Sie verwenden origin
als Name für Ihre Fernbedienung.
Sie müssen vor dem Push ziehen, um Ihr lokales Repository auf den neuesten Stand zu bringen, bevor Sie etwas pushen (nur für den Fall, dass jemand anderes bereits Code aktualisiert hat github.com
). Dies hilft bei der Lösung von Konflikten vor Ort.

Prayagupa
Dies geschieht normalerweise, wenn Sie git commit
und versuche es git push
Änderungen vor git pulling
auf diesem Ast x
wo jemand anderes bereits Änderungen vorgenommen hat.
Der normale Fluss wäre wie folgt,
SCHRITT 1: git stash
Ihre lokalen nicht festgeschriebenen Änderungen in diesem Zweig.
SCHRITT 2: git pull origin branch_name -v
zu pull and merge
zu lokal festgeschriebenen Änderungen in diesem Zweig (Geben Sie dieser Zusammenführung eine Nachricht und beheben Sie Konflikte, falls vorhanden.)
SCHRITT 3: git stash pop
der stash
geänderte Änderungen (Dann können Sie Commits für gepoppte Dateien vornehmen, wenn Sie möchten, oder bereits festgeschriebene Änderungen (SCHRITT4) zuerst pushen und später neue Commits für Dateien vornehmen.)
SCHRITT 4: git push origin branch_name -v
die zusammengeführten Änderungen.
Ersetzen branch_name
mit master
(zum master
sich verzeigen).

Smit Patel
Erste und einfache Lösung:
- Versuchen Sie diesen Befehl
git push -f origin master
.
- Dieser Befehl überschreibt zwangsweise das Remote-Repository (GitHub)
Empfohlene Lösung 1:
- Führen Sie diese Befehle aus:
git pull --allow-unrelated-histories //this might give you error but nothing to worry, next cmd will fix it
git add *
git commit -m "commit message"
git push
Wenn das nicht funktioniert, dann mach mit 🔰
Lösung 2 (nicht empfohlen):
Löscht Ihren gesamten Commit-Verlauf und den Commit-Verlauf Ihres Teamkollegen. Also bitte tun Sie dies nicht in einem professionellen Projekt
-
Löschen .git
Verzeichnis aus dem Ordner.
-
Führen Sie dann diese Befehle aus:
git init
git add .
git commit -m "First Commit"
git remote add origin [url]
git push -u origin master
ODER
git push -f origin master
Benutz nur git push -f origin master
wenn -u
arbeite nicht für dich.
Dadurch werden fast alle Arten von Fehlern behoben, die beim Übertragen Ihrer Dateien auftreten.

Peter Mortensen
Manchmal vergaßen wir das Ziehen und machten viele Arbeiten in der lokalen Umgebung.
Wenn jemand schieben will ohne zu ziehen,
git push --force
funktioniert. Dies wird nicht empfohlen, wenn Sie mit anderen Menschen zusammenarbeiten, aber wenn es sich bei Ihrer Arbeit um eine einfache Sache oder ein persönliches Spielzeugprojekt handelt, ist dies eine schnelle Lösung.

kubi
Einige von Ihnen erhalten diesen Fehler möglicherweise, weil Git nicht weiß, welchen Zweig Sie zu pushen versuchen.
Wenn Ihre Fehlermeldung auch 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 folgen Sie vielleicht den praktischen Tipps von Jim Kubicek, Konfigurieren Sie Git so, dass nur Current Branch gepusht wirdum den Standardzweig auf aktuell zu setzen.
git config --global push.default current
9861200cookie-checkKann nicht auf GitHub übertragen werden – sagt immer wieder, dass zusammengeführt werden mussyes
Beachten Sie, dass dies auch für Branches passieren kann, die zuvor lokal besucht wurden und Commits im Upstream-Repository hatten. Gibt es eine einfache Möglichkeit, einen so alten Zweig einfach vorzuspulen oder Git einfach im lokalen Repository vergessen zu lassen?
– Thorbjørn Ravn Andersen
19. Februar 2013 um 9:27 Uhr
@ThorbjørnRavnAndersen – Ich habe es geschafft, dieses Szenario mit “git push -f” zu beheben, wodurch Git seine imaginären Probleme vergessen zu lassen schien 🙂
– Staffel
28. Mai 2013 um 14:37 Uhr
Ich habe eine Beschwerde darüber von einem Git-Neuling gesehen. Der Grund dafür ist, dass sie beim Erstellen eines neuen Projekts auf GitHub das Kontrollkästchen „Mit Readme initialisieren“ verlassen oder .gitignore/GPL-Optionen auswählen, sodass das neue Projekt bereits einen Commit hat, den sie lokal nicht haben, daher die durch den obigen Fehler verursachte Verwirrung.
– Ruslan Kabalin
14. Oktober 2013 um 14:30 Uhr
@Echelon Die Option -f, um den Push zu erzwingen, ist gefährlich. Ich habe es gerade in einem Teamprojekt verwendet und 6 Commits wurden “gestreift”, einfach vom Server gelöscht und keine Möglichkeit, sie zurückzubekommen!
– Löschen
14. Januar 2014 um 10:47 Uhr
Es ist trendy, Git zu loben. Aber fast alle Entwickler, mit denen ich gesprochen habe, stimmen privat darin überein, dass sie persönlich Git hassen. Jetzt, da sie Git verwenden, verbringen sie viel mehr Zeit mit der Quellcodeverwaltung als früher, als sie notgedrungen oder TFS verwendet haben.
– Entwickler747
5. März 2015 um 16:26 Uhr