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 zuerst zum main-Branch wechseln und die neuesten Änderungen abrufen:

Schauen wir uns nun den Commit-Baum an:

Derzeit haben sowohl die main- als auch die feature/payment-Zweige Commits nach dem letzten gemeinsamen Vorfahren. Dies bedeutet, dass ein Fast-Forward-Merge nicht durchgeführt werden kann.

Wenn wir diese Zweige zusammenführen würden, würde ein Drei-Wege-Merge stattfinden. Wir möchten jedoch unsere Historie linear halten, also führen wir ein Rebase des feature/payment-Zweigs auf den main-Zweig durch. Dies kann durch Wechseln zum feature/payment-Zweig und Ausführen des git rebase-Befehls erfolgen:

Fast-forward Merge

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

Wie erwartet ist der Commit-Verlauf jetzt linear mit dem neuesten Commit auf dem feature/payment-Branch. Jetzt können wir einen einfachen Fast-Forward-Merge auf den main-Branch durchführen:

Lassen Sie uns überprüfen, ob beide Zweige auf denselben Commit verweisen, indem wir uns den neuesten Commit ansehen:

Entfernen des Feature-Branches

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

Nun können wir den lokalen Branch entfernen:

Schließlich können alle Änderungen, die wir vorgenommen haben, zurück in das Remote-Repository gepusht werden:

Um zu überprüfen, dass 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 können, wurde der feature/payment-Zweig erfolgreich gelöscht, und es gibt jetzt nur noch zwei Zweige: main und john/test mit ihren entfernten Gegenstücken.

Insgesamt funktioniert das Rebasen gut für lokale Änderungen, die noch nicht geteilt wurden, aber es kann erhebliche Probleme für Änderungen verursachen, die bereits in ein entferntes Repository veröffentlicht wurden und möglicherweise von anderen Mitarbeitern heruntergeladen wurden. Das Rebasen von Commits, die andere verwenden, kann Verwirrung und Konflikte verursachen, da der Commit-Verlauf neu geschrieben wird.

Als allgemeine Regel sollten Sie vermeiden, Änderungen zu rebasen, die in entfernte Repositories gepusht wurden, um diese Probleme zu vermeiden.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt