In diesem Artikel werde ich darüber sprechen, wie Git -Rebase funktioniert, welche Unterschiede zwischen Git Rebase und Git zusammenarbeiten und wie man mit Git Rebase arbeitet. Also lasst uns anfangen.
Nehmen wir an, Sie haben ein Git -Repository mit den Commits A, B, C im Meister Zweig. Dann haben Sie einen neuen Zweig erstellt Einige Branch und fügte 2 neue Commits hinzu D Und E zum Einige Branch Zweig.
Abb. 1: Erstbekannte Geschichte.
Sagen wir nun, Sie haben vergessen, etwas in die hinzuzufügen Meister Zweig. Also gehst du zurück zum Meister Branche und fügen Sie ein neues Commit hinzu G zum Meister Zweig. Ihre Git -Geschichte sollte wie folgt aussehen.
Abb. 2: Verschingungsgeschichte nach dem Hinzufügen von Commit G im Master -Zweig.
Alles sieht gut aus. Nun, wenn Sie alle Änderungen, die Sie an der vorgenommen haben Einige Branch Zweig in der sein Meister Zweig, Sie können die verschmelzen Einige Branch Zweig zum Meister Zweig. Das ist es verschmelzen Tun.
Was ist, wenn Sie den Commit wollen? G in der verfügbar sein Einige Branch Zweig? Nun, Sie können Git Rebase dafür verwenden.
Aus der Commit -Geschichte in Abb. 2 können Sie sehen, dass der Zweig Einige Branch beginnt vom Commit C. Wenn Sie eine Git -Rebase durchführen Einige Branch, Dann würde es vom Commit beginnen G Wie in Abb. 3 unten gezeigt. Beachten Sie, dass der Inhalt des Commits D Und E wird sich auch nach dem Rebase -Betrieb ändern. Die Commits D Und E beinhaltet die Änderungen im Commit G. Deshalb habe ich hinzugefügt * Symbol vor den Commits D Und E.
Wenn Sie wissen möchten, wie die Festungsgeschichte aussehen würde, wenn ich sie verschmelzen würde, schauen Sie sich Abb. 4 an,. Ich habe es nur aufgenommen, damit Sie es mit Git Rebase vergleichen können.
Abb. 4: Verschingungsgeschichte, wenn Git -Merge verwendet wurde.
Nachdem Sie nun wissen, was Git -Rebase ist, der Unterschied zwischen Git Rebase und Git zusammenfasst und warum Git Rebase es verwendet hat, werde ich Ihnen zeigen, wie Sie es im nächsten Abschnitt dieses Artikels unten verwenden können.
Git Rebase Workflow:
In diesem Abschnitt erstelle ich ein neues Git -Repository auf meinem lokalen Computer und zeigt Ihnen, wie Git -Rebase funktioniert. Ich empfehle Ihnen, Git Rebase ein gutes Verständnis zu haben, bevor Sie es auf Ihr Projekt anwenden.
Erstellen Sie zunächst ein neues Git -Repository rebase-Demo/ Auf Ihrem Computer wie folgt:
$ git init rebase-Demo
Navigieren Sie nun zur rebase-Demo/ Verzeichnis wie folgt:
$ CD Rebase-Demo/
Erstellen Sie nun eine neue Datei prüfen.txt folgendermaßen:
$ echo "a"> test.txt
Der Test.Die TXT-Datei enthält nur eine Zeile A. Nehmen wir an, dies ist Ihr ursprünglicher Projektcode.
Beachten Sie nun die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'a'
Fügen Sie nun eine weitere Zeile hinzu B zum prüfen.txt Datei wie im folgenden Screenshot gezeigt.
Beachten Sie nun die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'B'
Lassen Sie uns nun eine weitere Zeile C zum Fügen Sie dem hinzu prüfen.txt Datei.
Beachten Sie auch die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'C'
Jetzt sollte die engagierte Geschichte des Master -Zweigs wie folgt aussehen:
$ Git -Protokoll -Einmal
Sagen wir jetzt, Sie haben einige neue Ideen, die Sie ausprobieren möchten. Lassen Sie uns also eine neue Filiale erstellen und überschreiten neue Funktion folgendermaßen:
$ git checkout -b Neugefertigte
Fügen Sie nun Ihre neue Idee hinzu (die Linie D sagen wir sagen) zum prüfen.txt Datei.
Beachten Sie nun die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'D'
Fügen Sie nun die Zeile E zur prüfen.txt Datei.
Beiten Sie die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'e'
Nun die engagierte Geschichte der neue Funktion Der Zweig sollte wie folgt aussehen:
$ Git -Protokoll -Einmal
Sehen Sie, wie die Commits in Ordnung sind a < B < C < D < E?
Jetzt erinnern Sie sich, dass Sie vergessen haben, etwas zu dem hinzuzufügen Meister Zweig, dass Sie auch in der sein wollten neue Funktion Zweig! Also, Checkout an die Meister Zweig.
Ich fügte am Ende der neuen Zeile hinzu prüfen.txt Datei wie Sie sehen können.
Beachten Sie nun die Änderungen wie folgt:
$ git add .
$ Git Commit -m 'G'
Nun die engagierte Geschichte der Meister Der Zweig sollte so aussehen.
A < B < C < G
Nun, um die Commits aus dem zu wiederholen Meister Zweig zum neue Funktion Zweig, Erster Checkout zur neue Funktion Zweig.
$ git checkout neu-feature
Jetzt machen Sie eine Git -Wiedergeburt der Meister Zweig wie folgt:
$ Git Rebase Master
Einige verschmelzen Konflikte! Lassen Sie uns das beheben.
Nun, die Änderungen, die ich am Commit vorgenommen habe G Und D sind widersprüchlich miteinander. Ich möchte beide behalten.
Nach dem Fixieren des Zusammenführungskonflikts die prüfen.txt Die Datei sollte wie folgt aussehen:
Fügen Sie nun die Änderungen in den Staging -Bereich wie folgt hinzu:
$ git add .
Setzen Sie nun die Rebase fort, die wie folgt operiert:
$ git rebase -kontinue
Ein weiterer Zusammenführungskonflikt! Nun, das kann passieren. Rebase verändert die GIT -Beitengeschichte. Solche Dinge werden also erwartet.
Es scheint, dass der Zusammenführungsprozess aufgrund einiger leerer Linien fehlgeschlagen ist. Lassen Sie uns das beheben.
Nach dem Fixieren des Zusammenführungskonflikts die prüfen.txt Die Datei sollte wie folgt aussehen.
Fügen Sie nun die Änderungen in den Staging -Bereich wie folgt hinzu:
$ git add .
Setzen Sie nun den Rebase -Betrieb wie folgt fort:
$ git rebase -kontinue
Git -Rebase ist abgeschlossen.
Wie Sie sehen können, wird die Festungsgeschichte der Neu-Feature-Filiale aktualisiert. Jetzt lautet die Komitee -Geschichte wie folgt:
A < B < C < G < D < E
Genauso erwartet.
Das endgültige prüfen.txt Die Datei sollte wie folgt aussehen.
Git Rebase ist ein leistungsfähiges Werkzeug. Sie sollten es jedoch niemals für gemeinsame Git -Repositories verwenden. Verwenden Sie es nur in den Git -Repositories, an denen Sie nur arbeiten. Andernfalls werden Sie auf dem Weg viele Probleme haben.
So verwenden Sie Git Rebase. Danke, dass du diesen Artikel gelesen hast.