560 Stimmen

Dein Branch ist um 3 Commits "origin/master" voraus.

Ich erhalte Folgendes, wenn ich git status ausführe

Ihr Zweig ist um 3 Commits weiter als 'origin/master'.

Ich habe in einem anderen Beitrag gelesen, dass der Weg, dies zu beheben, darin besteht, git pull --rebase auszuführen, aber was genau ist rebase, werde ich Daten verlieren oder ist dies eine einfache Möglichkeit, mit dem Master zu synchronisieren?

1203voto

iberbeu Punkte 13649

Sie erhalten diese Nachricht, weil Sie Änderungen in Ihrem lokalen Master vorgenommen haben und sie nicht auf den Remote-Server übertragen haben. Sie haben mehrere Möglichkeiten, es zu "lösen", und es hängt normalerweise davon ab, wie Ihr Workflow aussieht:

  • In einem guten Workflow sollte Ihr Remote-Kopie des Masters die gute sein, während Ihre lokale Kopie des Masters nur eine Kopie der auf dem Remote-Server ist. Wenn Sie diesen Workflow verwenden, erhalten Sie diese Meldung nie wieder.
  • Wenn Sie auf andere Weise arbeiten und Ihre lokalen Änderungen übertragen werden sollen, dann einfach git push origin annehmen, dass origin Ihr Remote ist
  • Wenn Ihre lokalen Änderungen schlecht sind, dann entfernen Sie sie einfach oder setzen Sie Ihren lokalen Master auf den Zustand auf dem Remote-Server zurück git reset --hard origin/main

62voto

Abhishek Goel Punkte 16695

Verwenden Sie diese 4 einfachen Befehle

Schritt 1 : git checkout

Das ist offensichtlich, um zu diesem Zweig zu wechseln.

Schritt 2 : git pull -s recursive -X theirs

Übernehmen Sie Änderungen am Remote-Zweig und ersetzen Sie sie durch ihre Änderungen, wenn Konflikte auftreten. Hier erhalten Sie, wenn Sie git status ausführen, etwas wie Dieser Zweig ist 'origin/master' um 3 Commits voraus.

Schritt 3 : git reset --hard origin/

Schritt 4 : git fetch

Setzen Sie Ihren Zweig hart zurück.

Viel Spaß.

48voto

pmr Punkte 56454

Es gibt nichts zu beheben. Sie haben einfach 3 Commits gemacht und sie noch nicht in den Remote-Zweig verschoben. Es gibt mehrere Optionen, abhängig davon, was Sie tun möchten:

  • git push: Bewegen Sie Ihre Änderungen auf den Remote (dies könnte abgelehnt werden, wenn es bereits andere Änderungen auf dem Remote gibt)
  • Machen Sie nichts und programmieren Sie weiter, synchronisieren Sie ein anderes Mal
  • git pull: Erhalten Sie die Änderungen (falls vorhanden) vom Remote und fusionieren Sie sie mit Ihren Änderungen
  • git pull --rebase: wie oben, aber versuchen Sie, Ihre Commits auf den Remote-Änderungen neu zu erstellen

Sie befinden sich in einer klassischen Situation (obwohl Sie in den meisten Workflows normalerweise nicht viele Commits auf dem Master machen würden). Hier ist, was ich normalerweise tun würde: Überprüfen Sie meine Änderungen. Vielleicht machen Sie ein git rebase --interactive, um einige kosmetische Änderungen daran vorzunehmen, lassen Sie die schlechten weg, ordnen Sie sie neu an, um sie logischer zu machen. Bewegen Sie sie nun in den Remote mit git push. Wenn dies abgelehnt wird, weil mein lokaler Zweig nicht auf dem neuesten Stand ist: git pull --rebase, um meine Arbeit auf den neuesten Änderungen neu zu erstellen, und dann erneut git push.

27voto

pragman Punkte 1464

Bin auf dieses Problem gestoßen, nachdem ich einen Pull-Request auf Bitbucket gemerged hatte.

Musste folgendes machen

git fetch

und das war es.

23voto

Pratik Khadka Punkte 908

Wenn Ihr Git sagt, dass Sie voraus sind, dann einfach

git push origin

Um sicherzustellen, dass Sie alle Ihre neuesten Arbeiten im Repository hochgeladen haben

Dann,

git reset --hard origin/master

Um zurückzusetzen und mit dem Repository abzugleichen

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