Ich habe ein geklontes Projekt aus einem Hauptzweig aus dem Remote-Repository remote_repo
. Ich erstelle einen neuen Zweig und verpflichte mich zu diesem Zweig. Andere Programmierer gingen remote_repo
in den Hauptzweig.
Ich muss jetzt meinen Zweig RB auf den remote_repo
Master zurücksetzen .
Wie macht man das? Welche Befehle müssen in ein Terminal eingegeben werden?
git
clone
git-rebase
Damir
quelle
quelle
Antworten:
Rufen Sie zuerst den neuen Master aus dem Upstream-Repository ab und stützen Sie dann Ihren Arbeitszweig darauf:
Update : In der Antwort von Paul Draper finden Sie eine präzisere Möglichkeit, dasselbe zu tun. Neuere Git-Versionen bieten eine einfachere Möglichkeit, das Äquivalent der beiden oben genannten Befehle auszuführen.
quelle
Your branch and 'origin/b1' have diverged, # and have 3 and 2 different commits each, respectively.
Scheint, als würde ein anderergit pull
benötigt. Ist das richtig oder fehlt mir hier etwas?git rebase master
wird nicht den gleichen Job wie der zweite Befehl (git rebase origin/master
) ausführen, damaster
undorigin/master
möglicherweise auf verschiedene Commits verweist (insbesondere angesichts der Tatsache, dass der erste Befehlgit fetch origin
geändert wurdeorigin/master
).quelle
git pull --rebase=interactive origin master
dev
und ausgeführt werdegit pull --rebase origin master
, wird nur der Zweigdev
geändert, nichtmaster
. In der--rebase
Flag-Dokumentation heißt es, dass versucht wird,rebase the current branch on top of the upstream branch after fetching
lokale Tracking-Zweige zu ändern.Nachdem Sie Änderungen an Ihrer Filiale vorgenommen haben, checken Sie sie aus
master
und ziehen Sie sie, um die neuesten Änderungen aus dem Repo zu erhalten:Überprüfen Sie dann Ihre Filiale und stützen Sie Ihre Änderungen auf
master
:... oder die letzten beiden Befehle in einer Zeile:
Wenn Sie versuchen, zurück zu drücken
origin/RB
, wird wahrscheinlich eine Fehlermeldung angezeigt. Wenn Sie der einzige sind, an dem gearbeitet wirdRB
, können Sie Push erzwingen:... oder wie folgt, wenn Sie git entsprechend konfiguriert haben:
quelle
git push
verzichten-f
).Hinweis: Wenn Sie bereits umfassende Kenntnisse über Rebase haben, verwenden Sie für einen schnellen Rebase unter einem Liner. Lösung: Angenommen, Sie befinden sich in Ihrem Arbeitszweig und sind die einzige Person, die daran arbeitet.
Lösen Sie alle Konflikte, testen Sie Ihren Code, schreiben Sie fest und übertragen Sie neue Änderungen an den Remote-Zweig.
Die folgenden Schritte können jedem helfen, der neu ist
git rebase
und dies problemlos tun möchteSchritt 1: Angenommen, zu diesem Zeitpunkt müssen auf YourBranch keine Commits und Änderungen vorgenommen werden. Wir besuchen YourBranch.
Was ist passiert? Ruft alle Änderungen ab, die von anderen Entwicklern vorgenommen wurden, die an Ihrem Zweig arbeiten, und legt Ihre Änderungen darüber hinaus neu fest.
Schritt 2: Lösen Sie alle auftretenden Konflikte.
Schritt 3:
Was ist passiert? Ruft die neuesten Änderungen vom Remote-Master ab und setzt den lokalen Master auf dem Remote-Master neu. Ich halte den Remote Master immer sauber und lasse ihn bereit! Und arbeiten Sie lieber nur an Master oder Filialen vor Ort. Ich empfehle dies so lange, bis Sie eine Hand bei Git-Änderungen oder Commits bekommen. Hinweis: Dieser Schritt ist nicht erforderlich, wenn Sie den lokalen Master nicht verwalten. Stattdessen können Sie einen Remote-Master direkt in der lokalen Verzweigung abrufen und neu starten. Wie ich in einem Schritt am Anfang erwähnt habe.
Schritt 4: Lösen Sie alle auftretenden Konflikte.
Schritt 5:
Was ist passiert? Rebase auf Master passiert
Schritt 6: Lösen Sie alle Konflikte, wenn es Konflikte gibt. Verwenden Sie
git rebase --continue
diese Option, um die Wiederherstellung nach dem Hinzufügen der gelösten Konflikte fortzusetzen. Sie könnengit rebase --abort
die Rebase jederzeit abbrechen.Schritt 7:
Was ist passiert? Übertragen von Änderungen auf Ihre Remote-YourBranch.
--force-with-lease
stellt sicher, dass andere Entwickler andere Änderungen für YourBranch erhalten, während Sie die Basis neu festlegen. Dies ist sehr nützlich, anstatt Druck auszuüben. Falls eingehende Änderungen vorliegen, rufen Sie diese ab, um Ihre lokale YourBranch zu aktualisieren, bevor Sie Änderungen vornehmen.Warum muss ich Änderungen vornehmen? So schreiben Sie die Festschreibungsnachricht in der Remote-YourBranch nach ordnungsgemäßer erneuter Basis neu oder ob Konflikte gelöst wurden? Dann müssen Sie die Änderungen, die Sie im lokalen Repo gelöst haben, auf das Remote-Repo von YourBranch übertragen
Yahoooo ...! Sie sind erfolgreich mit der Neugründung fertig.
Möglicherweise möchten Sie auch Folgendes tun:
Wann und warum? Führen Sie Ihren Zweig zum Master zusammen, wenn Sie und andere Mitentwickler Änderungen vorgenommen haben. Dies macht YourBranch mit Master auf dem neuesten Stand, wenn Sie später an demselben Zweig arbeiten möchten.
quelle
Pulls latest changes from remote master to local master. I always prefer keeping remote master clean and release ready always!
. Ich werde meine Beschreibung aktualisieren.Schritt 1:
Schritt 2:
Schritt 3: (Beheben Sie eventuelle Konflikte)
Schritt 4:
Schritt 5:
quelle
1. Master zuerst aktualisieren ...
2.Basieren Sie jetzt den Quellzweig mit dem Hauptzweig neu
Wenn der Quellzweig auf der Fernbedienung noch nicht vorhanden ist, tun Sie Folgendes:
"et voila ..."
quelle
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
👌quelle
git fetch
aktualisieren Master , ohne dass es auschecken? Abgesehen davon, dassgit fetch
nichtgit merge
das richtige Updates? Wenn wir also auscheckenmaster
, werden nicht die neuesten Updates angezeigt. So ist nicht kürzer es während auf Funktionszweig zu tun,git fetch
danngit rebase origin/master
? Wir können das nicht tun,git rebase master
weil das versuchen wird,master
im Arbeitsbereich eine Basis zu erstellen . Wir müssenorigin/master
von den nicht zusammengeführten, aber in der Region sitzen.