
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?

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!
Ich würde es so machen:
-
Stellen Sie alle ungestaffelten Änderungen bereit.
git add .
-
Speichern Sie die Änderungen.
git stash save
-
Mit Fernbedienung synchronisieren.
git pull -r
-
Wenden Sie die lokalen Änderungen erneut an.
git stash pop
oder
git stash apply
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
- Zum Master-Zweig gewechselt (git checkout master)
- Hat am Master gezogen (git pull)
- Neuen Zweig erstellt (Git-Zweig C) – beachten Sie hier, dass wir jetzt vom Master verzweigen
- Wenn Sie sich nun auf Zweig C befinden, führen Sie mit Zweig B zusammen (git merge B).
- 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.

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.

Schwerwiegend
Ich konnte dieses Problem mit der folgenden Änderung in Visual Studio 2017 lösen:
- 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.
- 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
9641700cookie-checkSo beheben Sie den Git-Fehler: „Updates wurden abgelehnt, weil die Spitze Ihres aktuellen Zweigs zurückliegt“yes
git stash
Ihre Änderungen (wenn sie nicht festgeschrieben sind), mit Remote synchronisieren, Änderungen erneut anwenden mitgit 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