Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlagen des Rebasings | Fortgeschrittenere Workflows
GitHub-Grundlagen
course content

Kursinhalt

GitHub-Grundlagen

GitHub-Grundlagen

1. Einführung in GitHub
2. Grundlegende Interaktion mit Remotes
3. Fortgeschrittenere Workflows

book
Grundlagen des Rebasings

Einen Commit auf dem main-Branch erstellen

Beginnen wir damit, einen Commit direkt im entfernten main-Branch zu erstellen, indem wir die Datei README.md im Remote-Repository bearbeiten. Dadurch erhalten der main-Branch und der feature/payment-Branch eine auseinanderlaufende Commit-Historie.

Hier ist die zum Datei hinzugefügte Zeile:

Hier ist die entsprechende Commit-Nachricht:

Verständnis von Rebase

Wie im vorherigen Kapitel erwähnt, sollte der feature-Branch nach Überprüfung und Tests wieder in den main-Branch zusammengeführt werden. Bisher haben wir dafür ausschließlich den Befehl git merge verwendet. Es gibt jedoch auch die Möglichkeit, den Befehl git rebase zu nutzen.

Note
Mehr erfahren

Rebasing ist der Vorgang, eine Abfolge von Commits auf einen neuen Basis-Commit zu verschieben oder zu kombinieren. Dies geschieht, indem die Änderungen eines Branches auf einen anderen Branch angewendet werden, was zu einer linearen Commit-Historie führt.

Wenn wir einen Branch erstellen, verfolgt Git den neuesten Commit auf beiden Branches. Hat nur ein Branch neue Änderungen, kann Git diese per Fast-Forward anwenden. Haben jedoch beide Branches neue Änderungen, erstellt Git einen neuen Merge-Commit, was zu einem Three-Way-Merge führt.

So würde ein Three-Way-Merge in unserem Fall aussehen, wobei C4 der neueste Commit auf dem Branch feature/payment vor dem Merge war:

Dreifach-Merges können das Debugging jedoch erschweren, da sie zu einer verzweigten, nicht-linearen Historie führen. Durch das Rebasen ändern wir die Basis unserer Commits und spielen sie auf die neue Basis erneut ein, sodass Git einen Fast-Forward-Merge durchführen und eine lineare Historie beibehalten kann.

Hier ist eine Animation, die veranschaulicht, wie das Rebasing in unserem Fall durchgeführt werden kann (die Commit-Bezeichner entsprechen hier nicht den echten):

Note
Hinweis

Wenn Sie einen Branch rebasen, schreiben Sie im Wesentlichen dessen Historie um. Das bedeutet, dass die alten Commits durch neue ersetzt werden, die andere Bezeichner (Hash-Summen) haben, da sie auf anderen Snapshots des Codes basieren. Wie in der obigen Animation gezeigt, hat sich der Bezeichner des Commits auf dem Branch feature/payment nach dem Rebase geändert.

question mark

Was ist der Hauptzweck der Verwendung von git rebase anstelle von git merge?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

GitHub-Grundlagen

GitHub-Grundlagen

1. Einführung in GitHub
2. Grundlegende Interaktion mit Remotes
3. Fortgeschrittenere Workflows

book
Grundlagen des Rebasings

Einen Commit auf dem main-Branch erstellen

Beginnen wir damit, einen Commit direkt im entfernten main-Branch zu erstellen, indem wir die Datei README.md im Remote-Repository bearbeiten. Dadurch erhalten der main-Branch und der feature/payment-Branch eine auseinanderlaufende Commit-Historie.

Hier ist die zum Datei hinzugefügte Zeile:

Hier ist die entsprechende Commit-Nachricht:

Verständnis von Rebase

Wie im vorherigen Kapitel erwähnt, sollte der feature-Branch nach Überprüfung und Tests wieder in den main-Branch zusammengeführt werden. Bisher haben wir dafür ausschließlich den Befehl git merge verwendet. Es gibt jedoch auch die Möglichkeit, den Befehl git rebase zu nutzen.

Note
Mehr erfahren

Rebasing ist der Vorgang, eine Abfolge von Commits auf einen neuen Basis-Commit zu verschieben oder zu kombinieren. Dies geschieht, indem die Änderungen eines Branches auf einen anderen Branch angewendet werden, was zu einer linearen Commit-Historie führt.

Wenn wir einen Branch erstellen, verfolgt Git den neuesten Commit auf beiden Branches. Hat nur ein Branch neue Änderungen, kann Git diese per Fast-Forward anwenden. Haben jedoch beide Branches neue Änderungen, erstellt Git einen neuen Merge-Commit, was zu einem Three-Way-Merge führt.

So würde ein Three-Way-Merge in unserem Fall aussehen, wobei C4 der neueste Commit auf dem Branch feature/payment vor dem Merge war:

Dreifach-Merges können das Debugging jedoch erschweren, da sie zu einer verzweigten, nicht-linearen Historie führen. Durch das Rebasen ändern wir die Basis unserer Commits und spielen sie auf die neue Basis erneut ein, sodass Git einen Fast-Forward-Merge durchführen und eine lineare Historie beibehalten kann.

Hier ist eine Animation, die veranschaulicht, wie das Rebasing in unserem Fall durchgeführt werden kann (die Commit-Bezeichner entsprechen hier nicht den echten):

Note
Hinweis

Wenn Sie einen Branch rebasen, schreiben Sie im Wesentlichen dessen Historie um. Das bedeutet, dass die alten Commits durch neue ersetzt werden, die andere Bezeichner (Hash-Summen) haben, da sie auf anderen Snapshots des Codes basieren. Wie in der obigen Animation gezeigt, hat sich der Bezeichner des Commits auf dem Branch feature/payment nach dem Rebase geändert.

question mark

Was ist der Hauptzweck der Verwendung von git rebase anstelle von git merge?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
some-alt