Was ist Rebase? Wie verwende ich den Rebase-Befehl? Sehen wir uns an, wie man den Befehl git rebase verwendet.
Wir wissen, dass es zwei Hauptmethoden gibt, um Änderungen aus verschiedenen Zweigen in Git zu integrieren: Merge und Rebase. Tatsächlich bewirken Git Rebase und Git Merge dasselbe. Beide sind darauf ausgelegt, Änderungen von einem Zweig in einen anderen zusammenzuführen, jedoch auf leicht unterschiedliche Weise.
Beispiel für einen Merge-Befehl
git checkout feature git merge master
Auf diese Weise verbindet der neue Merge-Commit im Feature-Branch den Verlauf der beiden Branches miteinander
Merge The Das Gute daran ist, dass es sich um eine sichere Operation handelt. Bestehende Zweige werden nicht geändert
Der Feature-Zweig führt jedes Mal, wenn Upstream-Änderungen zusammengeführt werden, einen Alien-Merge-Commit ein. Wenn der Upstream-Zweig sehr aktiv ist, wird dadurch Ihr Zweigverlauf mehr oder weniger verschmutzt
Rebase-Befehlsbeispiel
git checkout feature git rebase master
Der gesamte Feature-Zweig wird in den Master-Zweig verschoben Danach werden alle neuen Commits im Master-Zweig effektiv zusammengeführt
Rebase erstellt jedoch für jeden Commit im ursprünglichen Zweig einen neuen Commit, wobei der Projektverlauf neu geschrieben und nicht zusammengeführt wird.
Beim Rebasieren von zwei Zweigen muss die generierte „Wiedergabe“ nicht auf den Zielzweig angewendet werden. Sie können auch einen anderen Zweig für die Anwendung angeben. Sie haben einen Feature-Branch-Server erstellt, dem Server einige Features hinzugefügt und C3 und C4 übermittelt. Dann habe ich den Feature-Branch-Client aus C3 erstellt, dem Client einige Features hinzugefügt und C8 und C9 übermittelt. Schließlich kehren Sie zum Serverzweig zurück und übernehmen C10 erneut.
Angenommen, Sie möchten die Änderungen im Client im Master-Zweig zusammenführen und veröffentlichen, aber Sie möchten die Änderungen im Server vorerst nicht zusammenführen , da sie noch umfassender getestet werden müssen. Zu diesem Zeitpunkt können Sie die Option --onto des Befehls git rebase verwenden, um die Änderungen auszuwählen, die sich im Client-Zweig, aber nicht im Server-Zweig (d. h. C8 und C9) befinden, und sie im Master-Zweig wiederzugeben:
$ git rebase --onto master server client
Der obige Befehl bedeutet: „Nehmen Sie den Client-Zweig heraus, suchen Sie die Änderungen nach dem gemeinsamen Vorfahren des Client-Zweigs und des Server-Zweigs und spielen Sie sie dann im Master-Zweig ab.“ Das ist etwas kompliziert zu verstehen, aber der Effekt ist sehr cool.
Jetzt können Sie den Merge-Master-Zweig schnell vorspulen.
$ git checkout master $ git merge client
Als nächstes entscheiden Sie sich, die Änderungen in den Serverzweig zu integrieren. Verwenden Sie den Befehl git rebase [basebranch] [topicbranch], um den Feature-Zweig (in diesem Beispiel den Server) direkt auf den Zielzweig (also den Master) umzubasieren. Dies erspart Ihnen die mehreren Schritte, zunächst zum Serverzweig zu wechseln und dann den Rebase-Befehl darauf auszuführen.
$ git rebase master server
Verwendungsszenarien von Rebase in der Entwicklung
Rebase kann mehr oder weniger im Git-Workflow Ihres Teams angewendet werden
Lokale Bereinigung
Führen Sie von Zeit zu Zeit ein interaktives Rebase durch. So können Sie sicherstellen, dass jeder Commit in Ihrem Feature-Branch fokussiert und sinnvoll ist. Sie müssen sich beim Schreiben von Code keine Sorgen um verwaiste Commits machen – denn Sie werden sie später bestimmt reparieren können
Der folgende Befehl führt interaktiv ein Rebase der letzten 3 Commits durch:
git checkout feature git rebase -i HEAD~3
Sie sind eigentlich Nein Zweige verschoben – Sie haben gerade die nächsten 3 Commits zusammengeführt
Interaktives Rebase ist eine großartige Möglichkeit, Git Rebase in Ihren Workflow einzuführen, da es nur den lokalen Zweig betrifft. Andere Entwickler können nur die Ergebnisse Ihrer Arbeit sehen, nämlich einen sehr übersichtlichen, leicht zu verfolgenden Zweigverlauf.
Aber auch dies kann nur in privaten Zweigstellen verwendet werden. Wenn Sie mit anderen Entwicklern am selben Feature-Zweig arbeiten, ist der Zweig öffentlich und Sie können den Verlauf nicht neu schreiben.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!