Kann nicht auf GitHub übertragen werden – sagt immer wieder, dass zusammengeführt werden muss

Lesezeit: 10 Minuten

Kann nicht auf GitHub ubertragen werden sagt immer wieder
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 [email protected]:519ebayproject/519ebayproject.git
To [email protected]:519ebayproject/519ebayproject.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]: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?

  • 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

Kann nicht auf GitHub ubertragen werden sagt immer wieder
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.

  • Dies funktionierte für mich für ein Repo, das ich auf Github habe, aber ich hatte ein Untermodul von Heroku in meiner App. und ich musste die Dateien aus dem Submodul holen und dann die aktualisierte App zu Heroku pushen.

    – J Gallardo

    14. November 2013 um 22:37 Uhr

  • Lesen Sie unbedingt die letzte Zeile des Kommentars zu diesem Beitrag! “Dies kann dazu führen, dass das Remote-Repository Commits verliert; verwenden Sie es mit Vorsicht.” Kraftstöße in einer Teamumgebung durchzuführen ist eine gefährliche Sache und sollte normalerweise vermieden werden.

    – Adam Kalnas

    29. April 2014 um 16:07 Uhr

  • Dies kann auch den gesamten Verlauf aus dem ursprünglichen Repository zum Remote HINZUFÜGEN, indem „Cherry-Pick“ verwendet wird, um „nur“ einen Commit hinüber zu verschieben. Wiederherstellung aus Backup erforderlich…

    – rickfoosusa

    9. August 2016 um 14:56 Uhr


  • Es ist auch erwähnenswert, dass, wenn Sie verwenden Github, dies kann ein open überschreiben Pull-Anfrage die Sie zuvor mit Ihren letzten Commits erstellt haben. Von Github-Dokumente: “Erzwungenes Pushen kann Ihre Pull-Anforderung beschädigen”.

    – Armfuß

    17. Juli 2017 um 11:40 Uhr

  • Das hat bei mir funktioniert. Ich habe versucht $ git pull origin master -v aber es gibt Fehler fatal: refusing to merge unrelated histories. Dann habe ich das versucht und es hat funktioniert und meine lokalen Dateien erschienen im Github Remote Repo.

    – G_real

    23. August 2019 um 15:42 Uhr


Kann nicht auf GitHub ubertragen werden sagt immer wieder
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.

  • Was ist, wenn Sie nicht fusionieren möchten? Und lassen Sie D (zumindest vorerst) einfach als Seitenzweig. Später werde ich nach C vielleicht mehr schreiben; jemand anderes könnte nach D mehr tun. Was ist die Eile mit der Fusion? Wie kann ich einen Seitenzweig verschieben, ohne ihn zusammenzuführen? ~~~

    – Steve Krüger

    26. November 2012 um 17:43 Uhr

  • local/branch und origin/branch sollen denselben Branch darstellen, aber auf unterschiedlichen Rechnern (local vs origin); local/branch zu pushen bedeutet, origin/branch zu aktualisieren. Wenn Sie möchten, dass der Status Ihres Zweigs für andere sichtbar ist (d. h. auf Ursprung), aber Sie nicht mit Ursprung/Zweig zusammenführen möchten, sollten Sie einen neuen Zweig von Lokal/Zweig erstellen (git branch [name]) und pushen Sie diesen Zweig zum Ursprung (git push -u origin [name])

    – Jake Greene

    27. November 2012 um 18:40 Uhr

  • Tolle Erklärung. Dies Video zeigt eine kurze Demonstration des Problems und wie es gelöst werden kann, wie @JakeGreene beschreibt, sowie zwei Möglichkeiten, es beim Einrichten eines neuen Repositorys von vornherein zu vermeiden.

    – Kevin Markham

    26. Oktober 2014 um 17:45 Uhr

  • etwas Jahre später scheint diese Antwort dieser anderen sehr, sehr ähnlich zu sein

    – superjos

    12. August 2015 um 13:03 Uhr

  • Für mich git pull auch gedruckt Already up-to-date. Es stellte sich heraus, dass ich mich nicht auf dem Zweig befand, auf dem ich mich befand, sondern auf einem abgetrennten HEAD-Zweig (möglicherweise von einer fehlgeschlagenen Zusammenführung?). Dies war nach dem Laufen offensichtlich git branch. Nach dem Rennen git checkout mybranch alles funktionierte wie erwartet.

    – Schreiter

    6. Oktober 2018 um 23:54 Uhr

1646885892 46 Kann nicht auf GitHub ubertragen werden sagt immer wieder
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.

  • Woher weiß ich den Repository-Namen? Wenn ich tippe git pull origin master git beschwert sich darüber 'origin' does not appear to be a git repository

    – ziyuang

    17. Dezember 2012 um 5:16 Uhr

  • ‘Herkunft’ ist eine Fernbedienung. Sie können verwenden git remote --verbose um alle Remotes zu sehen, die in Ihrem Git-Ordner konfiguriert sind. Die auf dem Bildschirm angezeigten Informationen enthalten auch entweder „[email protected]“-Pfade oder HTTPS-Pfade, von denen aus Sie erkennen können, wohin Sie pushen müssen. Hoffe das hilft !

    – AYK

    17. Dezember 2012 um 5:38 Uhr

  • git pull origin master zeigt Bereits aktuell. aber dann, wenn Sie versuchen, auf origin_branch zu drücken, sagen Sie die gleiche Warnung, die in Frage steht. Irgendein Vorschlag !!

    – Code

    20. April 2016 um 13:04 Uhr


  • @Shubh hast du das Problem jemals gelöst? Ich bekomme das gleiche!

    – OriginalAlchemist

    3. Mai 2016 um 7:15 Uhr

  • @OriginalAlchemist ja … da ich nur ein Entwickler bin, der an einem Remote-Local-Zweig arbeitet … habe ich das Pushen des lokalen Zweigs erzwungen … und das überschreibt alle Änderungen des offenen Zweigs auf dem Server mit meinen Änderungen vom lokalen System. git push -f <remote> <branch> z.B git push origin überprüfe diesen Thread.

    – Code

    3. Mai 2016 um 10:03 Uhr


1646885893 824 Kann nicht auf GitHub ubertragen werden sagt immer wieder
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 stashgeä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).

1646885893 126 Kann nicht auf GitHub ubertragen werden sagt immer wieder
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.

  • Das Löschen Ihres Git-Repos und der Verlust Ihres gesamten Commit-Verlaufs ist eine “empfohlene” Lösung? Scheint hastig.

    – Nils Guillermin

    4. Februar 2019 um 14:14 Uhr

  • @Nils Guillermin Das hängt von Ihrer Situation ab. Wenn ich an einem großen Projekt arbeite, bei dem ich alle Zusammenführungskonflikte beheben muss, würde ich vscode verwenden, um alle Änderungen einfach zu überprüfen und zusammenzuführen. Danke aber für deine Meinung.

    – Smit Patel

    27. April 2019 um 2:56 Uhr


  • Diese Antwort ist so schädlich und sollte entfernt werden. Schlagen Sie niemals vor, ein .git-Verzeichnis zu löschen, und Force Pushing sollte niemals auf einem Master-Zweig durchgeführt werden.

    – Unendlicher Zoom

    16. August 2020 um 2:18 Uhr

1646885893 371 Kann nicht auf GitHub ubertragen werden sagt immer wieder
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.

  • Das Löschen Ihres Git-Repos und der Verlust Ihres gesamten Commit-Verlaufs ist eine “empfohlene” Lösung? Scheint hastig.

    – Nils Guillermin

    4. Februar 2019 um 14:14 Uhr

  • @Nils Guillermin Das hängt von Ihrer Situation ab. Wenn ich an einem großen Projekt arbeite, bei dem ich alle Zusammenführungskonflikte beheben muss, würde ich vscode verwenden, um alle Änderungen einfach zu überprüfen und zusammenzuführen. Danke aber für deine Meinung.

    – Smit Patel

    27. April 2019 um 2:56 Uhr


  • Diese Antwort ist so schädlich und sollte entfernt werden. Schlagen Sie niemals vor, ein .git-Verzeichnis zu löschen, und Force Pushing sollte niemals auf einem Master-Zweig durchgeführt werden.

    – Unendlicher Zoom

    16. August 2020 um 2:18 Uhr

1646885893 814 Kann nicht auf GitHub ubertragen werden sagt immer wieder
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 '[email protected]: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

986120cookie-checkKann nicht auf GitHub übertragen werden – sagt immer wieder, dass zusammengeführt werden muss

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy