So beheben Sie den Git-Fehler: „Updates wurden abgelehnt, weil die Spitze Ihres aktuellen Zweigs zurückliegt“

Lesezeit: 5 Minuten

So beheben Sie den Git Fehler „Updates wurden abgelehnt weil die
Englisch

Ein wohlmeinender Kollege hat Änderungen an den Master gepusht, anstatt eine Verzweigung vorzunehmen. Dies bedeutet, dass ich beim Versuch, einen Commit durchzuführen, den Fehler erhalte:

Aktualisierungen wurden abgelehnt, da die Spitze Ihres aktuellen Zweigs zurückliegt

Ich weiß, dass dies durch eine Pull-Anforderung zur erneuten Synchronisierung gelöst werden sollte, aber ich möchte die Änderungen, die ich lokal vorgenommen habe, nicht verlieren, und ich möchte auch nicht das Commit erzwingen und die von jemand anderem vorgenommenen Änderungen löschen .

Was ist der richtige Ansatz, damit ich die Änderungen zusammenführen kann, ohne eines von beiden zu verlieren?

  • git stash Ihre Änderungen (wenn sie nicht festgeschrieben sind), mit Remote synchronisieren, Änderungen erneut anwenden mit git stash pop

    – Tim

    20. März 2014 um 12:31 Uhr

  • Leider hatte ich bereits ein paar lokale Commits durchgeführt, bevor ich versuchte, das Problem zu pushen und zu erkennen. Wie soll ich mit diesen umgehen?

    – Englisch

    20. März 2014 um 12:45 Uhr

  • um Heroku zu pushen, wenn Sie diesen Fehler erhalten, dann tun Sie stackoverflow.com/a/21088381/12201407

    – jeevu94

    15. Dezember 2020 um 10:59 Uhr

1646639890 958 So beheben Sie den Git Fehler „Updates wurden abgelehnt weil die
Akash

Wenn Sie bereits einige Commits vorgenommen haben, können Sie Folgendes tun

git pull --rebase

Dadurch werden alle Ihre lokalen Commits über neu gezogenen Änderungen platziert.

SEIEN SIE SEHR VORSICHTIG DAMIT: Dadurch werden wahrscheinlich alle Ihre aktuellen Dateien mit den Dateien überschrieben, die sich am Kopf des Zweigs im Remote-Repo befinden! Wenn dies passiert und Sie es nicht wollten, können Sie es tun DIESE ÄNDERUNG RÜCKGÄNGIG MACHEN mit

git rebase --abort 

… natürlich müssen Sie das tun, bevor Sie neue Commits machen!

  • Das ist, was ich brauchte, aber der Stash-Ansatz ist auch nützlich, also habe ich auch für Tim Castelijns Kommentar gestimmt.

    – Englisch

    20. März 2014 um 13:30 Uhr

  • Dies löscht meine lokalen Änderungen und macht sie wie die im Repo. Gut, dass ich mein Projekt in einen .zip-Ordner gelegt habe, bevor ich es gemacht habe 🙂

    – Ali Bdeir

    30. Oktober 2016 um 14:14 Uhr


  • Hinzufügen eines Kommentars für meine Erfahrung. musste ich hinzufügen git pull --rebase <remote> <branch> und beheben Sie dann Merge-Konflikte. Dann git add und schlussendlich git rebase --continue. Möglicherweise stimmt etwas mit Ihren lokalen und Remote-Zweigstellen nicht, das behoben werden muss.

    – Atlante Avila

    19. Juli 2017 um 18:12 Uhr

  • nachdem git pull –rebase origin master es sagte Aktueller Zweig my_branch ist aktuell.. Ich bin froh. Aber als ich erneut versuchte, es zu pushen, sagte ich das gleiche Problem: “Hinweis: Updates wurden abgelehnt, weil die Spitze Ihres aktuellen Zweigs zurückliegt.” Irgendwelche Vorschläge?

    – Vishal Patoliya ツ

    21. Juli 2017 um 12:56 Uhr

  • @EdisonPebojot Die Kurzversion funktioniert, wenn Ihr lokaler Zweig so eingestellt ist, dass er den entfernten Zweig verfolgt. Der Remote-Zweig wird dann als Upstream-Zweig des Lokalen bezeichnet. Sie können mehr darüber lesen devconnected.com/how-to-set-upstream-branch-on-git

    – Akash

    23. März 2021 um 11:20 Uhr

Ich würde es so machen:

  1. Stellen Sie alle ungestaffelten Änderungen bereit.

    git add .
    
  2. Speichern Sie die Änderungen.

    git stash save
    
  3. Mit Fernbedienung synchronisieren.

    git pull -r
    
  4. Wenden Sie die lokalen Änderungen erneut an.

    git stash pop
    

    oder

    git stash apply
    

  • Das ist auch SEHR GEFÄHRLICH! git pull -r bedeutet, dass alle Commits, die Sie in Bezug auf den Kopf des entfernten Zweigs durchgeführt haben, vollständig zerstört werden! Ihr „Versteck“ besteht nur aus Änderungen im Vergleich zu Ihrem letzten lokalen Commit! Das OP sagt ausdrücklich in einem Kommentar “Ich hatte bereits ein paar lokale Commits vorgenommen, bevor ich versuchte zu pushen” …

    – Mike Nagetier

    19. November 2017 um 15:02 Uhr


  • Verwenden git pull -r ist eine Frage der persönlichen Präferenz, wie ich angedeutet habe. Und ich würde es in Szenarien verwenden, in denen dies nicht dazu führt, dass Konflikte zusammengeführt oder Zerstörungen begangen werden, wie @mike erwähnt hat. Andernfalls, git pull würde genügen. Die Schönheit der Verwendung git pull -rist meiner Meinung nach in der obigen Situation, wenn es nicht zu Konflikten beim Zusammenführen kommt, dass es meine lokalen Commits an die Spitze setzt (dh einen saubereren Protokollverlauf), indem es die zusätzliche Automatik nicht erstelltmergebegehen, was ich als ‘Lärm’ und vermeidbar empfinde.

    – Rebekka Abriam

    3. Februar 2018 um 16:08 Uhr


Ich hatte genau das gleiche Problem in meinem Zweig (nennen wir es Zweig B) und ich habe drei einfache Schritte befolgt, um es zum Laufen zu bringen

  1. Zum Master-Zweig gewechselt (git checkout master)
  2. Hat am Master gezogen (git pull)
  3. Neuen Zweig erstellt (Git-Zweig C) – beachten Sie hier, dass wir jetzt vom Master verzweigen
  4. Wenn Sie sich nun auf Zweig C befinden, führen Sie mit Zweig B zusammen (git merge B).
  5. Mach jetzt einen Push (git push origin C) – funktioniert 🙂

Jetzt können Sie Branch B löschen und dann Branch C in Branch B umbenennen.

Hoffe das hilft.

  • Was wäre, wenn Sie die beiden zusammenführen, dh B & C

    – Bademba

    12. Juli 2019 um 20:39 Uhr

1646639891 783 So beheben Sie den Git Fehler „Updates wurden abgelehnt weil die
Pawel R

Ich hatte das gleiche Problem. Leider war ich in der falschen Katalogebene.

Ich versuchte zu: git push -u origin master -> Fehler aufgetreten

Dann habe ich versucht: git pull --rebase -> Es gab immer noch ein Problem
Schließlich wechsle ich das Verzeichnis cd your_directory

Dann habe ich es nochmal versucht ( git push) und es funktioniert!

Dieses Problem tritt auf, wenn jemand den Code zu „develop/master“ übertragen hat und der neueste Code nicht von „develop/master“ rebasiert wurde und Sie versuchen, neue Änderungen in den „develop/master“-Zweig zu überschreiben

Lösung:

  • Erstellen Sie ein Backup, wenn Sie am Feature-Branch arbeiten, und wechseln Sie zum Master/Develop-Branch, indem Sie git checkout development/master ausführen
  • Git-Pull machen
  • Sie erhalten Änderungen und Zusammenführungskonflikte treten auf, wenn Sie Änderungen an derselben Datei vorgenommen haben, die nicht von der Entwicklung/dem Master rebasiert wurde
  • Lösen Sie die Konflikte, wenn sie auftreten, und führen Sie Git-Push aus, dies sollte funktionieren

Das hat bei mir funktioniert:

git pull origin $(git branch --show-current)
git push

Fyi git branch --show-current gibt den Namen der aktuellen Verzweigung zurück.

1646639892 889 So beheben Sie den Git Fehler „Updates wurden abgelehnt weil die
Schwerwiegend

Ich konnte dieses Problem mit der folgenden Änderung in Visual Studio 2017 lösen:

  1. Wechseln Sie im Team Explorer zu Einstellungen. Gehe zu Globale Einstellungen um diese Option auf globaler Ebene zu konfigurieren; gehe zu Repository-Einstellungen um diese Option auf Repo-Ebene zu konfigurieren.
  2. Satz Basieren Sie den lokalen Zweig beim Ziehen neu auf die gewünschte Einstellung (bei mir war es Wahr) und auswählen Aktualisieren speichern.

Sehen: https://docs.microsoft.com/en-us/vsts/git/concepts/git-config?view=vsts&tabs=visual-studio#rebase-local-branch-when-pulling

964170cookie-checkSo beheben Sie den Git-Fehler: „Updates wurden abgelehnt, weil die Spitze Ihres aktuellen Zweigs zurückliegt“

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

Privacy policy