1298 Stimmen

Wie man einen lokalen Branch auf den Remote-Master rebased

Ich habe ein geklontes Projekt aus einem master-Zweig aus einem Remote-Repository remote_repo. Ich erstelle einen neuen Zweig und committe auf diesen Zweig. Andere Programmierer haben Änderungen auf den master-Zweig von remote_repo gepusht.

Jetzt muss ich meinen lokalen Zweig RB auf den master-Zweig von remote_repo rebasen.

Wie mache ich das? Welche Befehle muss ich in einem Terminal eingeben?

1614voto

Frerich Raabe Punkte 85859

Zuerst holen Sie den neuen Master aus dem Upstream-Repository und rebase dann Ihren Arbeitszweig darauf:

git fetch origin            # Aktualisiert origin/master
git rebase origin/master    # Rebased den aktuellen Zweig auf origin/master

Aktualisierung: Bitte beachten Sie Paul Drapers Antwort für eine präzisere Möglichkeit, dasselbe zu tun - aktuelle Git-Versionen bieten einen einfacheren Weg, um das Äquivalent der obigen beiden Befehle auszuführen.

1203voto

Paul Draper Punkte 70845
git pull --rebase origin master

This text does not require translation as it is already in English.

350voto

CharlesB Punkte 80104

Nachdem Sie Änderungen an Ihrem Branch vorgenommen haben, überprüfen Sie master und holen Sie ihn, um die neuesten Änderungen aus dem Repository zu erhalten:

git checkout master
git pull origin master

Dann überprüfen Sie Ihren Branch und rebaseen Sie Ihre Änderungen auf master:

git checkout RB
git rebase master

...oder die letzten beiden Befehle in einer Zeile:

git rebase master RB

Beim Versuch, zurück zu origin/RB zu pushen, erhalten Sie wahrscheinlich einen Fehler; wenn Sie der einzige sind, der an RB arbeitet, können Sie einen Force-Push durchführen:

git push --force origin RB

...oder wie folgt, wenn Sie git entsprechend konfiguriert haben:

git push -f

150voto

bh4r4th Punkte 3260

Hinweis: Wenn Sie bereits über umfassende Kenntnisse zum Rebase verfügen, verwenden Sie die unten stehende Einzeiler für ein schnelles Rebase. Lösung: Angenommen, Sie befinden sich auf Ihrem Arbeitszweig und sind die einzige Person, die daran arbeitet.

git fetch && git rebase origin/master

Lösen Sie alle Konflikte, testen Sie Ihren Code, überprüfen Sie und drücken Sie die neuen Änderungen auf den Remote-Zweig.

                            ~:   Für Anfänger   :~

Die folgenden Schritte könnten jedem helfen, der neu im Thema git rebase ist und es ohne Probleme durchführen möchte

Schritt 1: Angenommen, es gibt keine Commits und Änderungen, die zu diesem Zeitpunkt auf IhremBranch vorgenommen werden müssen. Wir besuchen IhrenBranch.

git checkout YourBranch
git pull --rebase

Was ist passiert? Holt alle Änderungen von anderen Entwicklern ab, die an Ihrem Zweig arbeiten, und reagiert darauf.

Schritt 2: Lösen Sie alle auftretenden Konflikte.

Schritt 3:

git checkout master
git pull --rebase

Was ist passiert? Holt alle neuesten Änderungen von Remote-Master ab und reagiert auf den lokalen Master auf Remote-Master. Ich halte Remote-Master immer sauber und einsatzbereit! Und arbeite am liebsten nur lokal auf dem Master oder auf Zweigen. Ich empfehle dies zu tun, bis Sie sich an git-Änderungen oder commits gewöhnt haben. Hinweis: Dieser Schritt ist nicht erforderlich, wenn Sie den lokalen Master nicht pflegen, sondern Sie können den Remote-Master direkt in einem lokalen Zweig holen und reagieren. Wie ich es oben am Anfang in einem Schritt erwähnt habe.

Schritt 4: Lösen Sie alle auftretenden Konflikte.

Schritt 5:

git checkout YourBranch
git rebase master

Was ist passiert? Das Rebase auf den Master erfolgt.

Schritt 6: Lösen Sie alle Konflikte, wenn es Konflikte gibt. Verwenden Sie git rebase --continue, um das Rebase nach Hinzufügen der gelösten Konflikte fortzusetzen. Jederzeit können Sie git rebase --abort verwenden, um das Rebase abzubrechen.

Schritt 7:

git push --force-with-lease 

Was ist passiert? Pushen Sie die Änderungen auf Ihren Remote-YourBranch. --force-with-lease stellt sicher, ob es andere eingehende Änderungen für Ihren Branch von anderen Entwicklern gibt, während Sie rebase. Dies ist sehr nützlich im Vergleich zum Force-Push. Falls es eingehende Änderungen gibt, holen Sie sie ab, um Ihren lokalen YourBranch zu aktualisieren, bevor Sie Änderungen pushen.

Warum muss ich Änderungen pushen? Um die Commit-Nachricht im Remote-YourBranch nach einem ordnungsgemäßen Rebase umzuschreiben oder falls Konflikte gelöst wurden? Dann müssen Sie die Änderungen, die Sie im lokalen Repo gelöst haben, im Remote-Repo von YourBranch pushen.

Juchhu...! Sie haben das Rebase erfolgreich abgeschlossen.

Sie könnten auch Folgendes tun:

git checkout master
git merge YourBranch

Wann und Warum? Mergen Sie Ihren Branch in den Master, wenn Sie mit den Änderungen von Ihnen und anderen Mitentwicklern fertig sind. Dies hält Ihren Branch auf dem neuesten Stand mit dem Master, wenn Sie später auf demselben Branch arbeiten möchten.

                            ~:   (  ) rebase   :~

42voto

GauthamManivannan Punkte 589

Schritt 1:

git fetch origin

Schritt 2:

git rebase origin/master

Schritt 3:(Beheben Sie ggf. Konflikte)

git add .

Schritt 4:

git rebase --continue

Schritt 5:

git push --force

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