git pull --rebase --autostash
-r, --rebase[=false|true|merges|preserve|interactive]
Wenn true, wird der aktuelle Branch nach dem Abrufen oben
auf dem Upstream-Branch neu basiert. Wenn ein
Remote-Tracking-Branch zum Upstream vorhanden ist
--autostash, --no-autostash
Bevor der Rebase gestartet wird, werden lokale Änderungen
gegebenenfalls beiseite gelegt und der Stash-Eintrag
wird nach Abschluss angewendet
Ich weiß nicht, warum das noch nicht beantwortet wurde, aber die Lösung ist, wie Sie sehen können, einfach. Alle Antworten hier schlagen dasselbe vor: Ihre lokalen Änderungen zu löschen/speichern und den Upstream anzuwenden und dann (falls Sie save
), Ihre lokalen Änderungen oben anzuwenden.
Was macht git pull --rebase --autostash
Schritt für Schritt:
1. Ihre lokalen Änderungen werden durch `--autostash` gespeichert
2. Ihre lokalen Commits werden durch `--rebase` gespeichert
3. Commits vom Upstream werden auf Ihren Branch angewendet
4. Ihre lokalen Commits werden oben auf dem Upstream wiederhergestellt
5. Ihre lokalen Änderungen werden im Arbeitsverzeichnis wiederhergestellt
Mein Fall (wahrscheinlich auch Ihrer):
Ich habe lokale Änderungen (Änderungen im Arbeitsverzeichnis):
Wenn ich versuche, Remote-Änderungen abzurufen, erhalte ich einen Fehler:
Diese Änderungen überschneiden sich nicht mit den lokalen Änderungen:
Also, wenn ich pull --rebase --autostash
verwende, werden lokale Änderungen automatisch gespeichert und angewendet, ohne Probleme
Jetzt sind meine lokalen Änderungen etwas niedriger: