Zum Inhalt springen
GitTree
Geschichte und Genesung

Vergleichen Sie Commits vor und nach einem Umschreiben

What Changed… vergleicht die Patches in zwei Commit-Serien, den Zweig vor einem Umschreiben und den Zweig danach. Merge-Commits werden weggelassen. Paare sind mit Same, Changed, Dropped oder Added gekennzeichnet. Der Vergleich verschiebt keine Referenzen und ändert keine Dateien. Das Pairing ist kein Beweis dafür, dass zwei Commits dasselbe bedeuten.

KostenlosAktualisiert

Funktioniert in GitTree Kostenlos: alle lokalen Git-Funktionen, kein Konto erforderlich.

Auf dieser Seite
  1. Bevor Sie beginnen
  2. Wo es zu finden ist
  3. Schritte
  4. Erwartetes Ergebnis
  5. Der Git-Befehl
  6. Was jeder Paarstatus bedeutet
  7. Wenn der Vergleich nicht ausgeführt werden kann
  8. Wenn etwas schief geht
  9. Fragen
  10. Verwandt

Bevor Sie beginnen

  • What Changed ist Teil des kostenlosen Plans. Git in Ihrem PATH muss git range-diff bereitstellen. Wenn dies nicht der Fall ist, sagt GitTree, dass dieser Git neu geschriebene Serien nicht vergleichen kann.
  • Du hast noch beide Tipps. Nach einem Rebase steht der alte Tipp oft im Reflog. Lost & Found kann einen Commit finden, auf den keine Verzweigungspunkte verweisen.

Wo es zu finden ist

  • Das Compare-Menü eines Commits: What Changed….
  • Der Hinweis nach einem Force Push.
  • Alt+D oder die Befehlspalette.
AktionmacOSWindows und Linux
What Changed…⌥DAlt+D
Die Befehlspalette⌘⇧PCtrl+Shift+P

Schritte

  1. Öffnen Sie „Was hat sich geändert“.

    Wählen Sie den Commit aus, den Sie neu geschrieben haben, öffnen Sie Compare und wählen Sie What Changed… oder drücken Sie Alt+D. Der Dialogtitel lautet What Changed…. In der Notiz heißt es, dass die Patches in zwei Commit-Serien verglichen werden und dass Merge-Commits weggelassen werden.

    Das Commit-Diagramm des Lumen-Repositorys mit einem ausgewählten Commit
    „Was sich geändert hat“ wird über das Vergleichsmenü eines Commits in diesem Diagramm geöffnet. Das Standbild ist das Diagramm, nicht der Vergleichsdialog.GitTree-Schnittstelle mit einem Demonstrations-Repository.
  2. Wählen Sie die beiden Tipps

    Setzen Sie Before rewrite auf den alten Tipp und After rewrite auf den neuen Tipp. Choose both tips, wenn eine Seite leer ist. Unter Advanced: excluded bases begrenzen Old base und New base den Bereich. Lassen Sie eine Basis leer, um den gemeinsamen Vorfahren der Spitzen zu verwenden.

  3. Vergleich

    Drücken Sie Compare. Stop fordert den Lesevorgang auf, den aktuellen Schritt abzuschließen. Das Ergebnis ist Rewrite comparison. Jedes Paar ist Same, Changed, Dropped oder Added. Inspect patch difference öffnet ein Paar. No patches differ in these ranges bedeutet die Serienübereinstimmung.

  4. Überprüfen Sie es, bevor Sie es veröffentlichen

    In dem Hinweis heißt es, geänderte Patches vor der Veröffentlichung zu überprüfen. Ein Changed-Paar ist derselbe Patch-Slot mit einem anderen Diff. Dropped war nur in der alten Serie enthalten. Added ist nur in der neuen Serie. Durch diesen Dialog wird nichts gepusht. Wenn Sie bereit sind, verwenden Sie den normalen Push oder Push mit Lease erzwingen, wenn das Remote noch über den alten Tipp verfügt.

Erwartetes Ergebnis

Sie können benennen, welche Patches die Neufassung überstanden haben, welche bearbeitet wurden und welche erschienen oder verschwunden sind. Der Zweig, der Index und der Arbeitsbaum sind unverändert. Überprüfen Sie den Patch eines geänderten Paares, bevor Sie jemand anderen bitten, den neuen Verlauf zu verwenden.

Der Git-Befehl

GitTree führt git range-diff für die beiden Bereiche aus. Sie können denselben Vergleich in einem Terminal durchführen. oldtip...newtip verwendet die Zusammenführungsbasis. Durch das Bestehen von vier Revisionen werden beide Grundlagen selbst festgelegt, was bei den erweiterten Feldern der Fall ist.

git range-diff oldtip...newtip
git range-diff oldbase..oldtip newbase..newtip
git reflog show feature

git reflog show feature listet die Tipps auf, die der Zweig vor dem Rebase hatte, sodass Sie den alten Tipp in Before rewrite einfügen können. Range-Diff vergleicht Patches. Es wird nicht entschieden, dass zwei Commit-Nachrichten dieselbe Arbeit beschreiben. Rebase und interaktives Rebase sind die Art und Weise, wie das Umschreiben erfolgt. Die Tutorial-Lektion zu Rebase zeigt das Befehlszeilenformular.

Was jeder Paarstatus bedeutet

Paarzustände im Rewrite-Vergleich
StaatBedeutung
Das GleicheDer Patch passt in beide Serien
GeändertDas Paar stimmt überein und der Patch unterscheidet sich
GefallenDer Patch ist nur in der alten Serie vorhanden
HinzugefügtDer Patch ist nur in der neuen Serie verfügbar

Merge-Commits werden weggelassen, sodass es sich bei der erwarteten Zusammenführung nicht um ein gelöschtes Paar handelt. Partial comparison: output reached its limit bedeutet, dass die Bereiche zu groß sind. Verengen Sie die Basen. Git output format was not recognized bedeutet, dass der von Git gedruckte Text nicht analysiert werden konnte. Überprüfen Sie diesen Text, bevor Sie der Liste vertrauen.

Wenn der Vergleich nicht ausgeführt werden kann

Wenn Git kein range-diff hat, sagt GitTree This Git cannot compare rewritten series. Update Git, or use Compare in the command palette to inspect the two revisions.. Dieser gewöhnliche Vergleich ist ein Vergleich zweier Bäume, keine Patch-Serie. Aktualisieren Sie Git über den Setup-Bildschirm oder über Git-Setup und öffnen Sie dann erneut „Was hat sich geändert“.

Wenn etwas schief geht

„Dieser Git kann umgeschriebene Serien nicht vergleichen.“

Das installierte Git hat keinen Bereichsunterschied. Aktualisieren Sie Git und versuchen Sie es dann erneut. Vergleichen Sie bis dahin die beiden Revisionen aus der Befehlspalette. Bei dieser Ansicht handelt es sich um einen Baumunterschied, nicht um eine Reihe von Patches.

„Wählen Sie beide Tipps.“

Vor dem Umschreiben oder Nach dem Umschreiben ist leer. Wählen Sie den alten Tipp aus dem Reflog oder von Lost & Found und den neuen Tipp aus dem Zweig.

„Teilweiser Vergleich: Die Leistung ist an ihre Grenzen gestoßen. Grenzen Sie die Bereiche ein.“

Stellen Sie „Alte Basis“ und „Neue Basis“ so ein, dass jede Seite nur die neu geschriebene Strecke darstellt, und drücken Sie dann erneut auf „Vergleichen“.

„In diesen Bereichen unterscheiden sich keine Patches.“

Die Serien stimmen überein oder die Basen schließen die Commits aus, die Ihnen wichtig sind. Räumen Sie eine Basis frei, um den gemeinsamen Vorfahren zu verwenden, und stellen Sie sicher, dass Sie nicht zweimal dieselbe Spitze ausgewählt haben.

Fragen

Ändert What Changed meinen Zweig?

Nein. Es liest zwei Commit-Serien und zeigt Paarzustände an. Verweise und Dateien bleiben dort, wo sie sind.

Hat ein geändertes Paar dieselbe Commit-ID?

Nein. Ein Rebase schreibt neue Commit-IDs. „Geändert“ bedeutet, dass die Patches gepaart wurden und ihre Unterschiede nicht identisch sind. Es ist keine Aussage, dass die beiden Botschaften dieselbe Absicht beschreiben.

Warum fehlen Merge-Commits?

Der Dialog besagt, dass Merge-Commits weggelassen werden. Range-Diff vergleicht die Patches auf jeder Seite des Umschreibens, nicht die Zusammenführungsknoten.

Wo ist der alte Tipp nach einem Rebase?

Es befindet sich normalerweise im Reflog, bis der Eintrag abläuft. Lost & Found kann dieses Reflog und die Wiederherstellungsreferenzen von GitTree durchsuchen, wenn keine Verzweigung darauf verweist.

Ersetzt dies Git Diff?

Nein. Git Diff vergleicht zwei Bäume. git range-diff vergleicht zwei Serien von Patches. Verwenden Sie „Was sich nach einer Umschreibung geändert hat“. Verwenden Sie einen gewöhnlichen Vergleich, wenn Sie den Baumunterschied ermitteln möchten.