Zum Inhalt springen
GitTree
Geschichte und Genesung

Bearbeiten Sie den Verlauf mit einer interaktiven Rebase

Bei einem interaktiven Rebase werden die Commits über einem ausgewählten neu geschrieben: Behalten, umformulieren, bearbeiten, komprimieren, korrigieren oder löschen und sie in eine neue Reihenfolge ziehen, z. B. git rebase -i. Bei einer einzelnen Änderung führt Edit History im Menü eines Commits dies in einem Schritt aus.

KostenlosAktualisiert

Funktioniert in GitTree Kostenlos: alle lokalen Git-Funktionen, sobald Sie angemeldet sind.

Auf dieser Seite
  1. Bevor Sie beginnen
  2. Wo es zu finden ist
  3. Schritte
  4. Erwartetes Ergebnis
  5. Was jede Aktion bewirkt
  6. Wenn etwas schief geht
  7. Fragen
  8. Verwandt

Bevor Sie beginnen

  • Die neu zu schreibenden Commits befinden sich in Ihrem aktuellen Zweig, es gibt keinen Merge-Commit zwischen ihnen.
  • Bevorzugen Sie Commits, die Sie nicht gepusht haben: Umgeschriebene Commits erhalten neue IDs.

Wo es zu finden ist

  • Klicken Sie mit der rechten Maustaste auf den Commit direkt unter den zu ändernden: Edit History › Interactive Rebase of the Commits Above….
  • Einstufige Bearbeitungen im selben Edit History-Menü: Edit Commit Message…, Drop Commit…, Move Commit Up und Move Commit Down.
  • Wählen Sie mehrere Commits aus und klicken Sie dann mit der rechten Maustaste: Squash Commits….
AktionmacOSWindows und Linux
Undo das gesamte Rebase⌘ZCtrl+Z

Schritte

  1. Öffnen Sie den Editor

    Klicken Sie mit der rechten Maustaste auf das Commit unter den zu ändernden Commits und wählen Sie Edit History › Interactive Rebase of the Commits Above…. Der älteste Commit steht ganz oben, in der Reihenfolge, in der er wiedergegeben wird.

    Animation: Der interaktive Rebase-Editor öffnet sich, ein Commit ist auf Squash und ein anderer auf Reword gesetzt
    Jeder Schritt hat eine Aktion; Hier wird ein Commit in den obigen gequetscht und ein anderer umformuliert.GitTree-Schnittstelle mit einem Demonstrations-Repository.
  2. Wählen Sie für jedes Commit eine Aktion aus

    Setzen Sie Action bei jedem Schritt: Pick behält es, Reword ändert seine Nachricht, Edit stoppt dort, damit Sie es ändern können, Squash und Fixup fügen es in den obigen Commit ein, Drop lässt es weg.

  3. Bei Bedarf nachbestellen

    Ziehen Sie einen Schritt an seinem Ziehpunkt oder fokussieren Sie ihn und drücken Sie Alt+Corporate oder Alt+↓. Buchstaben funktionieren auch: p, r, e, s, f und d legen die Aktionen fest.

  4. Starten Sie den Rebase

    Drücken Sie Start Rebase. Wenn sich einige Commits bereits auf einer Fernbedienung befinden, bestätigen Sie zunächst, dass sie neu geschrieben werden. GitTree sagt Rebase finished. Undo can put the branch back.

Erwartetes Ergebnis

Der Zweig enthält die neu geschriebenen Commits mit neuen IDs. Der alte Zweig wird unter refs/ogt/trash aufbewahrt.

Was jede Aktion bewirkt

Interaktive Rebase-Aktionen
AktionErgebnis
PickDer Commit bleibt so wie er ist.
RewordGleiche Änderungen, neue Nachricht, die Sie im Editor eingeben.
EditDas Rebase stoppt nach diesem Commit, sodass Sie es ändern und dann vom Banner aus fortfahren können.
SquashIn den Commit oben eingefügt; Die Nachrichten werden zusammengefasst.
FixupIn den Commit oben eingefügt; seine eigene Nachricht wird verworfen. Fixup, use its message behält stattdessen die Nachricht dieser Person.
DropAus der Filiale ausgeschlossen.

Wenn etwas schief geht

„Diese Commits beinhalten eine Zusammenführung, daher können sie hier nur angezeigt und nicht umgeschrieben werden.“

Interaktives Rebase in GitTree schreibt nur den linearen Verlauf neu. Beginnen Sie mit einem Commit oberhalb der Zusammenführung.

„Schritt … quetscht sich ins Nichts: Verschieben Sie ihn unter einen gehaltenen Commit.“

Ein Squash oder Fixup benötigt einen darüber liegenden Commit, in den er eingefügt werden kann. Verschieben Sie es oder ändern Sie den ersten Schritt in „Auswählen“.

Fragen

Wie verwandle ich mehrere Commits in einen?

Wählen Sie sie im Diagramm aus und wählen Sie Squash Commits…: Der Squash-Dialog zeigt zuerst das Ergebnis, die Nachricht und die Co-Autoren. Oder setzen Sie jeden Commit nach dem ersten im Editor auf Squash oder Fixup.