Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Durchführen Eines Rebase-Vorgangs | 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
Durchführen Eines Rebase-Vorgangs

Änderungen auf den main-Branch umbasieren

Bevor wir unsere Änderungen umbasieren können, müssen wir zunächst auf den main-Branch wechseln und die neuesten Änderungen abrufen:

Werfen wir nun einen Blick auf den Commit-Baum:

Sowohl der main- als auch der feature/payment-Branch haben derzeit Commits nach dem letzten gemeinsamen Vorgänger. Dies bedeutet, dass ein Fast-Forward-Merge nicht durchgeführt werden kann.

Würden wir diese Branches zusammenführen, käme es zu einem Three-Way-Merge. Wir möchten jedoch unseren Verlauf linear halten, daher führen wir ein Rebase des feature/payment-Branches auf den main-Branch durch. Dies kann erreicht werden, indem wir auf den feature/payment-Branch wechseln und den Befehl git rebase ausführen:

Fast-forward-Merge

Da das Rebase erfolgreich war, werfen wir erneut einen Blick auf unseren Commit-Baum:

Wie erwartet ist die Commit-Historie nun linear, wobei der letzte Commit auf dem Branch feature/payment liegt. Jetzt können wir einen einfachen Fast-forward-Merge auf den Branch main durchführen:

Überprüfen wir, ob beide Branches auf denselben Commit zeigen, indem wir uns den letzten Commit ansehen:

Entfernen des Feature-Branches

Der main-Branch enthält nun den neuesten Commit mit dem implementierten Zahlungssystem, daher können wir sowohl den lokalen als auch den entfernten feature/payment-Branch sicher entfernen. Der folgende Befehl entfernt den entfernten Branch:

Nun können wir den lokalen Branch entfernen:

Abschließend können alle vorgenommenen Änderungen zurück in das Remote-Repository übertragen werden:

Um zu überprüfen, ob der feature-Branch sowohl lokal als auch remote gelöscht wurde, können Sie den folgenden Befehl ausführen, der alle (-a steht für alle) lokalen und entfernten Branches auflistet:

Wie Sie sehen, wurde der Branch feature/payment erfolgreich gelöscht, und es gibt jetzt nur noch zwei Branches: main und john/test mit ihren entfernten Gegenstücken.

Insgesamt eignet sich das Rebasen gut für lokale Änderungen, die noch nicht geteilt wurden, kann jedoch erhebliche Probleme verursachen, wenn Änderungen bereits in ein Remote-Repository veröffentlicht und möglicherweise von anderen Mitwirkenden heruntergeladen wurden. Das Rebasen von Commits, die von anderen verwendet werden, kann zu Verwirrung und Konflikten führen, da der Commit-Verlauf überschrieben wird.

Als allgemeine Regel gilt: Vermeiden Sie das Rebasen von Änderungen, die bereits in Remote-Repositories gepusht wurden, um diese Probleme zu verhindern.

question mark

Warum führt feature/payment nach dem Rebasen von main auf git merge feature/payment einen Fast-Forward-Merge durch?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5

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
Durchführen Eines Rebase-Vorgangs

Änderungen auf den main-Branch umbasieren

Bevor wir unsere Änderungen umbasieren können, müssen wir zunächst auf den main-Branch wechseln und die neuesten Änderungen abrufen:

Werfen wir nun einen Blick auf den Commit-Baum:

Sowohl der main- als auch der feature/payment-Branch haben derzeit Commits nach dem letzten gemeinsamen Vorgänger. Dies bedeutet, dass ein Fast-Forward-Merge nicht durchgeführt werden kann.

Würden wir diese Branches zusammenführen, käme es zu einem Three-Way-Merge. Wir möchten jedoch unseren Verlauf linear halten, daher führen wir ein Rebase des feature/payment-Branches auf den main-Branch durch. Dies kann erreicht werden, indem wir auf den feature/payment-Branch wechseln und den Befehl git rebase ausführen:

Fast-forward-Merge

Da das Rebase erfolgreich war, werfen wir erneut einen Blick auf unseren Commit-Baum:

Wie erwartet ist die Commit-Historie nun linear, wobei der letzte Commit auf dem Branch feature/payment liegt. Jetzt können wir einen einfachen Fast-forward-Merge auf den Branch main durchführen:

Überprüfen wir, ob beide Branches auf denselben Commit zeigen, indem wir uns den letzten Commit ansehen:

Entfernen des Feature-Branches

Der main-Branch enthält nun den neuesten Commit mit dem implementierten Zahlungssystem, daher können wir sowohl den lokalen als auch den entfernten feature/payment-Branch sicher entfernen. Der folgende Befehl entfernt den entfernten Branch:

Nun können wir den lokalen Branch entfernen:

Abschließend können alle vorgenommenen Änderungen zurück in das Remote-Repository übertragen werden:

Um zu überprüfen, ob der feature-Branch sowohl lokal als auch remote gelöscht wurde, können Sie den folgenden Befehl ausführen, der alle (-a steht für alle) lokalen und entfernten Branches auflistet:

Wie Sie sehen, wurde der Branch feature/payment erfolgreich gelöscht, und es gibt jetzt nur noch zwei Branches: main und john/test mit ihren entfernten Gegenstücken.

Insgesamt eignet sich das Rebasen gut für lokale Änderungen, die noch nicht geteilt wurden, kann jedoch erhebliche Probleme verursachen, wenn Änderungen bereits in ein Remote-Repository veröffentlicht und möglicherweise von anderen Mitwirkenden heruntergeladen wurden. Das Rebasen von Commits, die von anderen verwendet werden, kann zu Verwirrung und Konflikten führen, da der Commit-Verlauf überschrieben wird.

Als allgemeine Regel gilt: Vermeiden Sie das Rebasen von Änderungen, die bereits in Remote-Repositories gepusht wurden, um diese Probleme zu verhindern.

question mark

Warum führt feature/payment nach dem Rebasen von main auf git merge feature/payment einen Fast-Forward-Merge durch?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
some-alt