Durchführen eines Rebase-Vorgangs
Swipe um das Menü anzuzeigen
Änderungen auf den main-Branch rebasen
Bevor wir unsere Änderungen rebasen können, müssen wir zunächst zum main-Branch wechseln und die neuesten Änderungen abrufen:
git checkout main
git pull
Sehen wir uns nun den Commit-Baum an:
git log --graph --oneline --all
Sowohl der main- als auch der feature/payment-Branch enthalten inzwischen Commits nach dem letzten gemeinsamen Vorgänger. Dies bedeutet, dass ein Fast-Forward-Merge nicht möglich ist.
Würden wir diese Branches zusammenführen, käme es zu einem Three-Way-Merge. Um jedoch eine lineare Historie beizubehalten, soll der feature/payment-Branch auf den main-Branch gerebased werden. Dies erfolgt, indem zum feature/payment-Branch gewechselt und der Befehl git rebase ausgeführt wird:
git checkout feature/payment
git rebase main
Fast-forward-Merge
Da das Rebase erfolgreich war, werfen wir erneut einen Blick auf unseren Commit-Baum:
git log --graph --oneline
Wie erwartet ist die Commit-Historie jetzt linear mit dem neuesten Commit auf dem Branch feature/payment. Nun kann ein einfacher Fast-forward-Merge auf den Branch main durchgeführt werden:
git checkout main
git merge feature/payment
Überprüfung, ob beide Branches auf denselben Commit verweisen, durch Ansicht des letzten Commits:
git log -n 1
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:
git push --delete origin feature/payment
Nun können wir den lokalen Branch entfernen:
git branch -d feature/payment
Abschließend können alle vorgenommenen Änderungen zurück in das Remote-Repository übertragen werden:
git push
Um zu überprüfen, ob der feature-Branch sowohl lokal als auch remote gelöscht wurde, kann folgender Befehl ausgeführt werden, der alle (-a steht für alle) lokalen und entfernten Branches auflistet:
git branch -a
Wie Sie sehen können, wurde der Branch feature/payment erfolgreich gelöscht, und es gibt jetzt nur noch zwei Branches: main und john/test mit ihren Remote-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 andere verwenden, kann durch das Umschreiben der Commit-Historie zu Verwirrung und Konflikten führen.
Als allgemeine Regel gilt: Vermeiden Sie das Rebasen von Änderungen, die bereits in Remote-Repositories gepusht wurden, um diese Probleme zu verhindern.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen