Hallo, Entdecker! An dieser Seite wird aktiv gearbeitet, oder sie wird noch übersetzt. Die neuesten und genauesten Informationen finden Sie in unserer englischsprachigen Dokumentation.
Artikelversion: Enterprise Server 2.15

Diese Version von GitHub Enterprise wird eingestellt am Diese Version von GitHub Enterprise wurde eingestellt am 2019-10-16. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Informationen zu Git-Rebase

Mit dem Befehl „git rebase“ können Sie eine Reihe von Commits einfach ändern und den Verlauf Ihres Repositorys anpassen. Sie können Commits gemeinsam neu anordnen, bearbeiten oder squashen.

In der Regel verwenden Sie git rebase in folgenden Fällen:

Warnung: Da die Änderung Ihres Commit-Verlaufs zu Schwierigkeiten für alle anderen Benutzer des Repositorys führen kann, gilt ein Commit-Rebase nach dem Push an ein Repository als schlechte Praxis. Informationen zu einem sicheren Rebase auf Ihre GitHub Enterprise Server-Instanz finden Sie unter „Informationen zum Mergen von Pull Requests“.

Commit-Rebase anhand eines Branches

Um ein Rebase für alle Commits zwischen einem anderen Branch und dem aktuellen Branch-Status durchzuführen, können Sie den folgenden Befehl in Ihrer Shell eingeben (entweder die Eingabeaufforderung unter Windows oder das Terminal unter Mac und Linux):

$ git rebase --interactive other_branch_name

Commit-Rebase anhand eines Zeitpunkts

Um ein Rebase für die letzten Commits in Ihrem aktuellen Branch durchzuführen, können Sie den folgenden Befehl in Ihrer Shell eingeben:

$ git rebase --interactive HEAD~7

Während des Rebasings verfügbare Befehle

Beim Rebasing stehen sechs Befehle zur Verfügung:

pick
pick bedeutet einfach, dass der Commit enthalten ist. Wenn Sie die Reihenfolge der pick-Befehle neu anordnen, ändert sich die Reihenfolge der Commits während des Rebasings. Wenn Sie keinen Commit einbeziehen möchten, sollten Sie die gesamte Zeile löschen.
reword
Der Befehl reword ist ähnlich wie pick, aber nachdem Sie ihn verwendet haben, wird der Rebase-Prozess angehalten, sodass Sie die Commit-Mitteilung ändern können. Alle Änderungen, die durch den Commit vorgenommen werden, sind davon nicht betroffen.
edit
Wenn Sie edit für einen Commit wählen, haben Sie die Möglichkeit, den Commit zu ändern, was bedeutet, dass Sie den Commit hinzufügen oder komplett ändern können. Sie können auch mehr Commits erstellen, bevor Sie mit dem Rebasing fortfahren. Auf diese Weise können Sie einen großen Commit in kleinere aufteilen oder fehlerhafte Änderungen, die in einem Commit vorgenommen wurden, entfernen.
squashen
Mit diesem Befehl können Sie zwei oder mehr Commits zu einem einzigen Commit zusammenfassen. Ein Commit wird in den Commit darüber gesquasht. Git gibt Ihnen die Möglichkeit, eine neue Commit-Mitteilung zu schreiben, die beide Änderungen beschreibt.
fixup
Dies ist ähnlich wie squash, aber die Mitteilung des zu mergenden Commits wird verworfen. Der Commit wird einfach in den Commit darüber gemergt, und die Mitteilung des früheren Commits wird verwendet, um beide Änderungen zu beschreiben.
exec
Hiermit können Sie beliebige Shell-Befehle auf einem Commit ausführen.

Beispiel für die Verwendung von git rebase

Unabhängig davon, welchen Befehl Sie verwenden, startet Git Ihren Standardtexteditor und öffnet eine Datei, die die Commits in dem von Ihnen gewählten Bereich detailliert beschreibt. Diese Datei sieht in etwa so aus:

pick 1fc6c95 Patch A
pick 6b2481b Patch B
pick dd1475d something I want to split
pick c619268 A fix for Patch B
pick fa39187 something to add to patch A
pick 4ca2acc i cant' typ goods
pick 7b36971 something to move before patch B

# Rebase 41a72e6..7b36971 onto 41a72e6
#
# Befehle:
#  p, pick = Commit verwenden
#  r, reword = Commit verwenden, aber die Commit-Mitteilung bearbeiten
#  e, edit = Commit verwenden, aber zum Ändern unterbrechen
#  s, squash = Commit verwenden, aber mit dem vorherigen Commit verschmelzen
#  f, fixup = wie "squash", aber die Protokollnachricht dieses Commits verwerfen
#  x, exec = Befehl (der Rest der Zeile) mit Shell ausführen
#
# Wenn Sie hier eine Zeile entfernen, GEHT DIESER COMMIT VERLOREN.
# Wenn Sie jedoch alles entfernen, wird das Rebasing abgebrochen.
#

Wenn man diese Informationen von oben nach unten betrachtet, wird Folgendes deutlich:

Weiterführende Informationen

Menschliche Unterstützung einholen

Sie können das Gesuchte nicht finden?

Kontakt