Git

Wie man Git Rebase macht

Wie man Git Rebase macht
git rebase ist ein Merge-Dienstprogramm wie git zusammenführen. Aber ihre Arbeitsweise ist anders.

In diesem Artikel werde ich darüber sprechen, wie Git Rebase funktioniert, die Unterschiede zwischen Git Rebase und Git Merge und wie man mit Git Rebase arbeitet. Also lasst uns anfangen.

Git-Rebase:

Nehmen wir an, Sie haben ein Git-Repository mit den Commits EIN, B, C in dem Meister Ast. Dann haben Sie einen neuen Zweig erstellt irgendein Zweig und 2 neue Commits hinzugefügt D und E zum irgendein Zweig Ast.

Abb. 1: Erster Commit-Verlauf.

Nehmen wir an, Sie haben vergessen, etwas hinzuzufügen in die Meister Ast. Also gehst du zurück zum Meister Branch und füge einen neuen Commit hinzu G zum Meister Ast. Ihr Git-Verlauf sollte wie folgt aussehen.

Abb. 2: Commit-Historie nach dem Hinzufügen von Commit G im Master-Zweig.

Alles sieht gut aus. Nun, wenn Sie alle Änderungen, die Sie an der irgendein Zweig Filiale in der sein Meister Zweig, können Sie die zusammenführen irgendein Zweig verzweigen Sie in die Meister Ast. Das ist was git verschmelzen tun.

Was ist, wenn Sie das Commit wollen? G in der verfügbar sein irgendein Zweig Ast? Nun, Sie können dafür git rebase verwenden.

Aus dem Commit-Verlauf in Abb. 2 können Sie sehen, dass der Branch irgendein Zweig beginnt mit dem Commit C. Wenn Sie ein Git-Rebase auf durchführen irgendein Zweig, dann würde es mit dem Commit beginnen G wie in Abb. 3 unten gezeigt. Beachten Sie, dass der Inhalt des Commits D und E wird sich auch nach der Rebase-Operation ändern. Die Verpflichtungen D und E wird die Änderungen in das Commit aufnehmen G. Deshalb habe ich hinzugefügt * Symbol vor den Commits D und E.

Wenn Sie wissen möchten, wie der Commit-Verlauf aussehen würde, wenn ich ihn zusammengeführt habe, dann werfen Sie einen Blick auf Abb. 4. Ich habe es nur eingefügt, damit Sie es mit git rebase vergleichen können.

Abb. 4: Commit-Historie, wenn git merge verwendet wurde.

Jetzt, da Sie wissen, was git rebase ist, den Unterschied zwischen git rebase und git merge und warum git rebase es verwendet hat, werde ich Ihnen im nächsten Abschnitt dieses Artikels unten zeigen, wie Sie es verwenden.

Git Rebase-Workflow:

In diesem Abschnitt werde ich ein neues Git-Repository auf meinem lokalen Computer erstellen und Ihnen zeigen, wie git rebase funktioniert. Ich empfehle Ihnen, ein gutes Verständnis von git rebase zu haben, bevor Sie es auf Ihr Projekt anwenden.

Erstellen Sie zuerst ein neues Git-Repository rebase-demo/ auf Ihrem Computer wie folgt:

$ git init rebase-demo

Navigieren Sie nun zum rebase-demo/ Verzeichnis wie folgt:

$ cd rebase-demo/

Erstellen Sie nun eine neue Datei Prüfung.TXT wie folgt:

$ echo "A" > testen.TXT

Die Prüfung.txt-Datei enthält nur eine Zeile EIN. Nehmen wir an, dies ist Ihr anfänglicher Projektcode.

Übertragen Sie nun die Änderungen wie folgt:

$ git hinzufügen .
$ git commit -m 'A'

Fügen Sie nun eine weitere Zeile hinzu B zum Prüfung.TXT Datei wie im Screenshot unten gezeigt.

Übertragen Sie nun die Änderungen wie folgt:

$ git hinzufügen .
$ git commit -m 'B'

Jetzt fügen wir eine weitere Zeile C zu der hinzu Prüfung.TXT Datei.

Übertragen Sie die Änderungen außerdem wie folgt:

$ git hinzufügen .
$ git commit -m 'C'

Nun sollte die Commit-Historie des Master-Branchs wie folgt aussehen:

$ git log --oneline

Sagen wir mal, du hast ein paar neue Ideen, die du ausprobieren möchtest. Also, lass uns eine neue Filiale erstellen und zur Kasse gehen neue Funktion wie folgt:

$ git checkout -b neues-feature

Fügen Sie nun Ihre neue Idee hinzu (die Zeile D sagen wir) zum Prüfung.TXT Datei.

Übertragen Sie nun die Änderungen wie folgt:

$ git hinzufügen .
$ git commit -m 'D'

Fügen Sie nun die Zeile E zum . hinzu Prüfung.TXT Datei.

Übernehmen Sie die Änderungen wie folgt:

$ git hinzufügen .
$ git commit -m 'E'

Nun, die Commit-Historie der neue Funktion Zweig sollte wie folgt aussehen:

$ git log --oneline

Sehen Sie, wie die Commits in der Reihenfolge A . sind < B < C < D < E?

Jetzt erinnern Sie sich, dass Sie vergessen haben, etwas hinzuzufügen Meister Filiale, in der du auch sein wolltest neue Funktion Ast! Also, zur Kasse gehen Meister Ast.

Ich habe am Ende des eine neue Zeile hinzugefügt Prüfung.TXT Datei, wie Sie sehen können.

Übertragen Sie nun die Änderungen wie folgt:

$ git hinzufügen .
$ git commit -m 'G'

Nun, die Commit-Historie der Meister Filiale sollte so aussehen.

EIN < B < C < G

Um nun die Commits von der Meister verzweigen Sie in die neue Funktion Filiale, erste Kasse zum neue Funktion Ast.

$ git checkout neues Feature

Führen Sie nun eine Git-Rebase des durch Meister wie folgt verzweigen:

$ git rebase master

Einige Zusammenführungskonflikte! Lass uns das beheben.

Nun, die Änderungen, die ich am Commit vorgenommen habe G und D stehen im Widerspruch zueinander. Ich möchte beides behalten.

Nachdem der Zusammenführungskonflikt behoben wurde, Prüfung.TXT Datei sollte wie folgt aussehen:

Fügen Sie nun die Änderungen zum Staging-Bereich wie folgt hinzu:

$ git hinzufügen .

Fahren Sie nun mit dem Rebase-Vorgang wie folgt fort:

$ git rebase --continue

Ein weiterer Zusammenführungskonflikt! Nun, das kann passieren. Rebase ändert den Git-Commit-Verlauf. Also, solche Dinge werden erwartet.

Es scheint, dass der Zusammenführungsprozess aufgrund einiger leerer Zeilen fehlgeschlagen ist. Lass uns das beheben.

Nachdem der Zusammenführungskonflikt behoben wurde, Prüfung.TXT Datei sollte wie folgt aussehen.

Fügen Sie nun die Änderungen zum Staging-Bereich wie folgt hinzu:

$ git hinzufügen .

Setzen Sie nun den Rebase-Vorgang wie folgt fort:

$ git rebase --continue

Git-Rebase ist abgeschlossen.

Wie Sie sehen können, wird die Commit-Historie des Zweigs mit neuen Funktionen aktualisiert. Der Commit-Verlauf sieht nun wie folgt aus:

EIN < B < C < G < D < E

Genau wie erwartet.

Der endgültige Prüfung.TXT Datei sollte wie folgt aussehen.

Git Rebase ist ein mächtiges Werkzeug. Sie sollten es jedoch niemals in freigegebenen Git-Repositorys verwenden. Verwenden Sie es nur in den Git-Repositorys, mit denen Sie nur arbeiten. Sonst wirst du unterwegs auf viele Probleme stoßen.

So verwenden Sie git rebase. Danke, dass du diesen Artikel gelesen hast.

Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...