web-dev-qa-db-de.com

Wie man einen lokalen Zweig mit einem entfernten Master wiederherstellt

Ich habe ein Projekt aus dem Hauptzweig aus dem Remote-Repository remote_repo geklont. Ich erstelle einen neuen Zweig und verpflichte mich zu diesem Zweig. Andere Programmierer haben auf remote_repo gedrückt, um die Verzweigung zu meistern. Ich muss jetzt meinen Zweig RB auf remote_repo master umbasen. Wie macht man das ? Welche Befehle müssen an das Terminal eingegeben werden?

800
Damir

Holen Sie sich zuerst den neuen Master aus dem Upstream-Repository und bauen Sie dann Ihren Arbeitszweig darauf auf:

git fetch Origin            # Updates Origin/master
git rebase Origin/master    # Rebases current branch onto Origin/master

Aktualisieren: Bitte lesen Sie Paul Drapers Antwort , um eine präzisere Vorgehensweise zu finden. Neuere Git-Versionen bieten eine einfachere Möglichkeit, das Äquivalent der beiden oben genannten Befehle auszuführen.

1106
Frerich Raabe
git pull --rebase Origin master
# where --rebase[=(false|true|merges|preserve|interactive)]
743
Paul Draper

Nachdem Sie die Änderungen in Ihrer Filiale vorgenommen haben, überprüfen Sie den Master und ziehen Sie ihn, um die Änderungen aus dem Repository zu übernehmen:

git checkout master
git pull Origin master

Dann checke deine Filiale aus und stütze deine Änderungen auf master:

git checkout RB
git rebase master

oder die letzten beiden Befehle in einer Zeile:

git rebase master RB
166
CharlesB

Hinweis: Wenn Sie bereits umfassende Kenntnisse über Rebase haben, verwenden Sie unter einem Liner für eine schnelle Rebase. Lösung: Angenommen, Sie sind in Ihrem Arbeitsbereich und Sie sind die einzige Person, die daran arbeitet.

git fetch && git rebase Origin/master

Lösen Sie Konflikte, testen Sie Ihren Code, übernehmen Sie und übertragen Sie neue Änderungen in den Remote-Zweig.

                            ~:   For noobs   :~

Die folgenden Schritte könnten jedem helfen, der git rebase noch nicht kennt und dies ohne Probleme tun wollte

Schritt 1: Angenommen, es sind zu diesem Zeitpunkt keine Commits und Änderungen an YourBranch erforderlich. Wir besuchen YourBranch.

git checkout YourBranch
git pull --rebase

Was ist passiert? Übernimmt alle Änderungen, die von anderen Entwicklern an Ihrem Zweig vorgenommen wurden, und baut Ihre Änderungen darauf auf.

Schritt 2: Lösen Sie alle auftretenden Konflikte.

Schritt 3:

git checkout master
git pull --rebase

Was ist passiert? Ruft die neuesten Änderungen vom Remote-Master ab und setzt den lokalen Master auf den Remote-Master um. Ich halte Remote Master immer sauber und releasebereit! Und arbeiten Sie lieber nur am Master oder in Zweigstellen vor Ort. Ich empfehle, dies zu tun, bis Sie eine Hand auf Git-Änderungen oder Commits bekommen. Hinweis: Dieser Schritt ist nicht erforderlich, wenn Sie keinen lokalen Master verwalten. Stattdessen können Sie einen Remote-Master direkt in einer lokalen Verzweigung abrufen und neu konfigurieren. Wie ich gleich zu Beginn erwähnte.

Schritt 4: Lösen Sie alle auftretenden Konflikte.

Schritt 5:

git checkout YourBranch
git rebase master

Was ist passiert? Neustart auf Master passiert

Schritt 6: Lösen Sie etwaige Konflikte, wenn Konflikte vorliegen. Verwenden Sie git rebase --continue, um die Wiederherstellung fortzusetzen, nachdem Sie die gelösten Konflikte hinzugefügt haben. Sie können jederzeit git rebase --abort verwenden, um die Rebase abzubrechen.

Schritt 7:

git Push --force-with-lease 

Was ist passiert? Änderungen auf Ihre Remote-YourBranch übertragen. --force-with-lease prüft, ob andere Entwickler Änderungen für YourBranch vornehmen, während Sie die Basis neu einrichten. Dies ist sehr nützlich, anstatt Push zu erzwingen. Wenn Änderungen eingehen, rufen Sie diese ab, um Ihre lokale YourBranch zu aktualisieren, bevor Sie die Änderungen übertragen.

Warum muss ich Änderungen pushen? Um die Festschreibungsmeldung in Remote-YourBranch nach ordnungsgemäßem Neustart oder nach Behebung von Konflikten neu zu schreiben? Dann müssen Sie die Änderungen, die Sie im lokalen Repo vorgenommen haben, in das Remote-Repo von YourBranch übertragen

Yahoooo ...! Du bist erfolgreich mit dem Umbasieren fertig.

Möglicherweise möchten Sie auch Folgendes tun:

git checkout master
git merge YourBranch

Wann und Warum? Fügen Sie Ihre Filiale in master ein, wenn Sie und andere Mitentwickler Änderungen vorgenommen haben. Dadurch ist YourBranch mit dem Master auf dem neuesten Stand, wenn Sie später an demselben Zweig arbeiten wollten.

                            ~:   (๑ơ ₃ ơ)♥ rebase   :~
94
bh4r4th

git fetch Origin master:master ruft die neueste Version von master ab, ohne sie auschecken zu müssen.

Alles was Sie brauchen ist:

git fetch Origin master:master && git rebase master ????

5
Naz

1.Master zuerst aktualisieren ...

git checkout [master branch]

Git Pull [Master Branch]

2.Jetzt Source-Branch mit Master-Branch rebasieren

git checkout [Quellzweig]

Git Rebase [Master Branch]

git pull [Quellzweig] (Remote-/Quellzweig)

git Push [Quellzweig]

WENN der Quellenzweig noch nicht existiert, dann mache:

git Push -u Origin [Quellzweig]

"et voila ..."

2
N Djel Okoye