Heim >häufiges Problem >So verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen

So verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen

anonymity
anonymityOriginal
2019-04-27 15:20:237963Durchsuche

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.

So verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen

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.

So verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen

Jetzt können Sie den Merge-Master-Zweig schnell vorspulen.

$ git checkout master
$ git merge client

So verwenden Sie Git Rebase, um Zweige in Git zusammenzuführen

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.

interesting-rebase-4 (1).png

$ 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn