Zum Inhalt springen
GitTree

Lektion 24 · Erholung

Einen aktiven Vorgang fortsetzen, überspringen oder abbrechen

Wenn eine Zusammenführung oder ein Rebase beendet wird, haben Sie drei Auswege: fortfahren, überspringen oder abbrechen. Erfahren Sie, welches passt, was jedes wegwirft und wie Sie das Repository anschließend überprüfen.

In diesem Browser gespeicherter Fortschritt.

Beim Abspielen wird das Video von YouTube geladen (erweiterter Datenschutzmodus).

Englische Erzählung · English and Arabic Bildunterschriften

Öffnen Sie die VideoseiteAuf YouTube ansehen

Was Sie lernen werden

  • Sagen Sie, welcher Vorgang aktiv ist, bevor Sie etwas berühren.
  • Fahren Sie erst fort, nachdem jeder Konflikt gelöst und markiert wurde.
  • Erklären Sie, was Skip auslässt und wann es das falsche Werkzeug ist.
  • Brechen Sie einen Vorgang ab und prüfen Sie, ob Sie wieder am Anfang sind.

Bevor Sie beginnen

Sie verwenden die Abweichung aus Lektion 23: conflict/sara (Saras Überschrift „Überprüfen Sie Änderungen mit Zuversicht.“) und conflict/omar (Omars Überschrift „Verstehen Sie jede gespeicherte Änderung.“), beide aus dem Commit M. Erstellen Sie drei saubere Kopien davon mit den Namen gittree-continue, gittree-abort und gittree-skip. In jedem Fall ist conflict/sara ausgecheckt und es läuft nichts. Sie beenden den gleichen Vorgang in allen drei Fällen und verlassen ihn jeweils auf eine andere Art und Weise.

Alles ist lokal und im kostenlosen Plan (GitTree fordert Sie auf, sich anzumelden): kein Hosting-Konto, kein Anbieter, kein Internet. Jede Identität ist fiktiv (example.com). Führen Sie diese Lektion niemals in einem echten Projekt aus.

Nehmen Sie die Änderungen in GitTree oder mit den nativen Git-Befehlen vor, nicht beides in derselben Kopie. Das Ablesen des Ergebnisses ist immer sicher. Die Menübezeichnungen stammen aus den eigenen Strings von GitTree 2.0 und die nativen Befehle wurden mit Git 2.43 in Einwegkopien ausgeführt. Die GitTree-Schritte wurden nicht auf macOS, Windows oder Linux ausgeführt.

Konzept und Zustandswirkungen

Ein gestoppter Vorgang ist ein eigener Zustand. Bis zum Ende merkt sich das Repository, was es getan hat, und Sie dürfen darüber keine weitere Zusammenführung oder Rebase starten. Finden Sie zunächst heraus, was aktiv ist. Das Banner von GitTree sagt es deutlich: „Merging … into …“ oder „Rebasing … on …“ (mit der Schrittnummer, wenn es mehrere gibt) und der Anzahl der verbleibenden Konflikte. In einem Terminal beginnt git status mit „Sie haben nicht zusammengeführte Pfade“ und einem Hinweis für eine Zusammenführung oder „interaktives Rebase in Bearbeitung; auf …“ für ein Rebase und listet dann die Befehle auf, die Sie verwenden können.

Continue macht weiter, sobald jeder Konflikt gelöst ist und sein Ergebnis bereitgestellt wird. Es handelt sich nicht um einen erneuten Versuch der ursprünglichen Zusammenführung oder des Rebase: Es beendet den Merge-Commit oder verschiebt einen Rebase auf den nächsten Commit.

Skip existiert für Vorgänge, die Commits wiedergeben, z. B. ein Rebase. Die Änderung des aktuellen Commits wird vollständig aus dem Ergebnis ausgeschlossen. In dieser Lektion lässt Skip Saras Überschrift fallen und der Zweig endet mit Omars Commit. Es ist keine Möglichkeit, „die Datei zu akzeptieren“ oder einen Konflikt aufzuschieben, und es ist das falsche Werkzeug, wenn Sie diese Änderung dennoch wünschen. Bei einer Zusammenführung gibt es kein Überspringen, da eine Zusammenführung aus einem Schritt besteht: Sie beenden sie entweder oder brechen sie ab.

Abort geht dorthin zurück, wo der Vorgang begonnen hat. Was auch immer Sie bisher beschlossen haben, wird verworfen. GitTree speichert einen Wiederherstellungs-Snapshot dessen, was zuerst gelöscht wird, und das Repository kehrt zu genau dem Commit, Index und den Dateien zurück, die es zuvor hatte. Es ist der Ausweg, wenn Sie nicht sicher sind, was Sie tun.

AuswahlDas ErgebnisWas es kostet
WeiterZusammenführungs-Commit durchgeführt oder das nächste Commit wiederholtnichts, wenn alles geklärt ist
ÜberspringenDie Änderung des aktuellen Commits wird weggelassendiese Veränderung, bis du sie wiederfindest
AbbruchDas Repository ist wieder am Startdie während der Operation geleistete Arbeit

Bereiten Sie den genauen Projektstand vor

Bauen Sie Saras und Omars Zweige einmal und erstellen Sie dann drei Kopien. Beginnen Sie mit einer separaten normalen Kopie des Projekts, so wie es in Lektion 18 hinterlassen wurde, und lassen Sie Ihr Original gittree-features unberührt. Die Seitenversionen: MERGED ist die gemeinsame Basis, SARA und OMAR sind die konkurrierenden Versionen und RESOLVED ist das Ergebnis, das Sie in der Fortsetzungskopie speichern.

Vollständige Dateieingaben

Speichern Sie nur in der unten genannten Phase. Dabei handelt es sich um vollständige UTF-8/LF-Körper mit einem abschließenden Zeilenumbruch; Fügen Sie niemals Markdown-Zäune ein. Unveränderte ausführbare Dateien erben die benannte Eingabe. Versionen in separaten Varianten dürfen das Original nicht überschreiben.

index.html – ZUSAMMENGEFÜHRT

Aktenauszug · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">See your work clearly.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html – SARA

Aktenauszug · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Review changes with confidence.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html – OMAR

Aktenauszug · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Understand each saved change.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html – BEHOBEN

Aktenauszug · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Review each change with confidence.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

In GitTree

Öffnen Sie die Palette mit Befehl+Umschalt+P (Strg+Umschalt+P bei Ubuntu). Aktionen für einen benannten Zweig verwenden das Rechtsklickmenü dieses Zweigs.

  1. Erstellen Sie die drei Kopien, wie im nächsten Abschnitt gezeigt. In jedem Fall ist conflict/sara ausgecheckt und der Status ist leer. Notieren Sie sich die vollständige ID von conflict/sara in der Abbruchkopie.
  2. Continue copy. Öffnen Sie gittree-continue. Klicken Sie mit der rechten Maustaste auf conflict/omar und wählen Sie Merge conflict/omar into conflict/sara mit Always a merge commit. Es hört auf. Wählen Sie auf dem Banner Resolve, öffnen Sie index.html, wählen Sie Edit Output, schreiben Sie Review each change with confidence. und wählen Sie Save and Mark Resolved.
  3. Stellen Sie sicher, dass kein Konflikt mehr besteht, und wählen Sie dann einmal Continue im Banner aus. Auf dem Hinweis steht „Fertig“. und das Banner verschwindet. Der neue Commit hat zwei Eltern.
  4. Abort copy. Öffnen Sie gittree-abort und starten Sie die gleiche Zusammenführung. Lassen Sie den Konflikt ungelöst. Wählen Sie auf dem Banner Abort…. Der Dialog „Vorgang abbrechen?“ erscheint. erklärt, dass der Zweig, der Index und die Dateien auf ihren ursprünglichen Zustand zurückgesetzt werden und dass das, was gelöscht wird, zunächst in den Wiederherstellungs-Snapshots erhalten bleibt. Wählen Sie Abort. In der Meldung steht: „Abgebrochen. Die verworfene Änderung wird unter refs/ogt/trash/… gespeichert. Durch Rückgängigmachen wird sie wiederhergestellt.“ (Wenn der Abbruch nichts hinterlässt, heißt es „Abgebrochen. Das Repository ist wieder da, wo es vorher war.“)
  5. Überprüfen Sie den Abbruch: conflict/sara ist immer noch die ID, die Sie notiert haben, die Seite ist Saras vollständige Überschrift und es gibt kein Banner.
  6. Skip copy. Öffnen Sie gittree-skip. Klicken Sie mit der rechten Maustaste auf conflict/omar und wählen Sie Rebase conflict/sara onto conflict/omar. Lassen Sie die Optionen deaktiviert und wählen Sie Rebase conflict/sara. Es hört auf. Das Banner bietet jetzt Skip neben Continue und Abort…; Das Merge-Banner hatte kein Überspringen.
  7. Lesen Sie, welcher Commit wiedergegeben wird (der von Sara), akzeptieren Sie, dass beim Überspringen ihre Überschrift weggelassen wird, und wählen Sie einmal Skip aus. In der Mitteilung steht „Schritt übersprungen“.
  8. Überprüfen Sie das Überspringen: Die Seite zeigt Omars Überschrift, conflict/sara zeigt jetzt auf Omars Commit und es wird kein Banner angezeigt. Vergleichen Sie die drei Ergebnisse und halten Sie sie auseinander.

Für jeden gewöhnlichen Commit im Kurs: Summary ist das angegebene Subjekt, Description ist leer und die Optionen Amend Previous Commit, Skip Hooks, Add Signed-off-by, Different Author, Push After Commit und Allow Empty Commit bleiben ausgeschaltet.

Im Terminal

In einer separaten sauberen Kopie des Ergebnisses von Lektion 18:

Command · bash
git switch --create conflict/sara
BASE_SHA="$(git rev-parse HEAD)"

Speichern Sie SARA als index.html, dann:

Command · bash
git add -- index.html
git -c user.name="Sara Lindqvist" -c user.email=sara@example.com commit --quiet -m "feat: Sara clarifies the hero"
git switch --quiet --create conflict/omar "$BASE_SHA"

Speichern Sie OMAR als index.html, dann:

Command · bash
git add -- index.html
git -c user.name="Omar Haddad" -c user.email=omar@example.com commit --quiet -m "feat: Omar explains the hero"
git switch --quiet conflict/sara

Erstellen Sie drei saubere Kopien dieses Status (gittree-continue, gittree-abort, gittree-skip). Sehen Sie sich zunächst an, was aktiv ist, wenn Sie unsicher sind:

Command · bash
git status

Continue copy. Die Zusammenführung stoppt mit Exit-Code 1. Speichern Sie GELÖST als index.html, dann:

Command · bash
git merge --no-ff --no-edit conflict/omar
git add -- index.html
git -c core.editor=true merge --continue
git ls-files --unmerged
git status --short

Die letzten beiden Befehle geben nichts aus. Abort copy:

Command · bash
git rev-parse conflict/sara
git merge --no-edit conflict/omar
git merge --abort
git rev-parse HEAD conflict/sara
git status --short

Die Zusammenführung stoppt und git merge --abort beendet sie. Die beiden von git rev-parse HEAD conflict/sara gedruckten IDs sind gleich, index.html ist Saras vollständige Seite und der Status ist leer. Ein gestoppter Rebase wird auf die gleiche Weise mit git rebase --abort verlassen. Skip copy:

Command · bash
git rebase conflict/omar
git rebase --skip
git rev-parse HEAD conflict/omar
git status --short

Die Rebase stoppt; git rebase --skip beendet es mit „Erfolgreich neu basiert“. Die beiden IDs sind gleich, daher befindet sich Saras Zweig jetzt auf Omars Commit, die Seite gehört Omar und der Status ist leer. Saras übersprungener Commit befindet sich nicht mehr im Zweig, aber Git hat ihn noch eine Weile (das Reflog, Lektion 29). Lesen Sie dieses Ergebnis nicht als eine Lösung, bei der beide Eingaben beibehalten wurden.

Ergebnis

Where you end: drei Kopien, drei unterschiedliche Ergebnisse. Die Fortsetzungskopie verfügt über einen zwei übergeordneten Merge-Commit mit der kombinierten Überschrift. Die Abbruchkopie ist genau dort, wo sie begonnen hat, mit Saras Überschrift. Die Übersprungskopie enthält Omars Überschrift und Saras Zweig zu Omars Commit. In allen drei Fällen ist der Vorgang beendet und der Status ist sauber.

Häufige Fehler

  • Überspringen verwenden, um einen Konflikt zu „überwinden“. Es löscht die Änderung dieses Commits aus dem Ergebnis.
  • Starten einer weiteren Zusammenführung oder Rebase, während eine noch gestoppt ist.
  • Verwenden Sie git reset --hard als Escapezeichen anstelle von git merge --abort oder git rebase --abort.
  • Abbrechen, wenn Sie nur noch einen Klick vom Abschluss entfernt sind, oder Fortfahren, wenn Sie nicht sicher sind, was bereitgestellt wird.

Wenn etwas schief geht

Wenn Sie sich verlaufen haben, lesen Sie zuerst das Banner oder git status und entscheiden Sie erneut. Ein Abbruch ist immer der sichere Weg zurück zum Anfang. Wenn Sie versehentlich übersprungen haben, fangen Sie nicht blind von vorne an: Der übersprungene Commit ist noch eine Weile vom Reflog aus erreichbar (Lektion 29), und Lektion 30 zeigt, was durch „Undo“ von GitTree wiederhergestellt werden kann.

Überprüfen Sie Ihr Verständnis

Beantworten Sie jede Frage und lesen Sie dann, warum. Mit „erforderlich“ gekennzeichnete Fragen zählen zum Abschluss der Lektion.

  1. Frage 1 von 6

    Ein Rebase wurde aufgrund eines Konflikts gestoppt. Sie haben die Datei aufgelöst und bereitgestellt. Welcher Befehl führt die Rebase weiter?

    Wählen Sie eine Antwort.

  2. Frage 2 von 6

    Was macht git rebase --skip?

    Wählen Sie jede zutreffende Antwort aus.

  3. Frage 3 von 6
    Erforderlich

    In der Skip-Kopie wählen Sie „Einmal überspringen“. Wie sehen die Seite und der Zweig anschließend aus?

    Wählen Sie eine Antwort.

  4. Frage 4 von 6

    Ändern Sie die Eingabe: In der Fortsetzungskopie lösen Sie die Datei auf und markieren sie als gelöst. Wählen Sie dann Abbrechen… anstelle von Weiter. Was passiert mit Ihrem Vorsatz?

    Wählen Sie eine Antwort.

  5. Frage 5 von 6
    Erforderlich

    Sie befinden sich mitten in einer Zusammenführung und suchen im Banner nach einer Schaltfläche zum Überspringen, diese ist jedoch nicht vorhanden. Warum?

    Wählen Sie eine Antwort.

  6. Frage 6 von 6
    Erforderlich

    Welche Rücklesungen zeigen nach dem Abbruch der Zusammenführung in der Abbruchkopie, dass Sie wieder am Anfang sind?

    Wählen Sie jede zutreffende Antwort aus.

0 von 6 korrekt

Beantworten Sie die erforderlichen Fragen richtig, um die Lektion abzuschließen.

In diesem Browser überprüft.

Üben

Geben Sie in jeder Kopie die Operation, die Auswahl und den Beweis an: für Continue die beiden übergeordneten Elemente und die leere, nicht zusammengeführte Liste, für Abort die gleichen IDs und Saras Seite, für Skip Omars Seite und den Zweig auf seinem Commit. Sagen Sie dann voraus, warum Überspringen für eine Zusammenführung nicht angeboten wird.

Ihre eigene Bestätigung: Die Website kann Ihren Computer nicht sehen.

Um die Lektion abzuschließen, beantworten Sie die erforderlichen Fragen richtig und bestätigen Sie die praktische Übung.

Zusammenfassung

  • Finden Sie heraus, was aktiv ist, bevor Sie handeln.
  • Fahren Sie nach der Lösung fort, überspringen Sie nur, um ein Commit auszulassen, und brechen Sie ab, um zurückzukehren.
  • Überprüfen Sie anschließend den Commit, die Dateien und den Status.

Glossarbegriffe eingeführt

Weiter – متابعة; überspringen – تخطّي; abbrechen – إيقاف; Operation – عملية.

Videotranskript

Die Erzählung des Videos, Stichwort für Stichwort.

Zeigen Sie das Transkript
  1. Eine Zusammenführung oder ein Rebase wird beendet. Du hast drei Auswege.
  2. „Weiter“ beendet es. Skip hinterlässt einen begehen. Abbruch geht zurück.
  3. Finden Sie zunächst immer heraus, um welche Operation es sich handelt aktiv.
  4. Das Banner benennt es. In einem Terminal, Git Status tut es.
  5. Baue Saras und Omars Filialen und drei identische Exemplare.
  6. Gleicher Anfang, drei verschiedene Enden.
  7. Kopieren Sie eins: Wir machen weiter. Starten Sie die Zusammenführung, und es hört auf.
  8. Lösen Sie die Datei, öffnen Sie sie und schreiben Sie die Datei kombinierte Überschrift.
  9. Speichern und als gelöst markieren, damit Git das sieht Datei als erledigt.
  10. „Weiter“ ist jetzt verfügbar. Wählen Sie es einmal aus.
  11. Erledigt. Das neue Commit hat zwei Eltern und das Banner ist weg.
  12. Kopie zwei: Wir brechen ab. Starten Sie die gleiche Zusammenführung.
  13. Lassen Sie den Konflikt in Ruhe und wählen Sie Abbruch.
  14. Der Dialog erklärt, was zurückkommt, und was zuerst aufbewahrt wird.
  15. Das Repository ist wieder da, wo es war vor.
  16. Die Zweigspitze hat die gleiche ID und die Die Seite gehört wieder Sara.
  17. Kopie drei: Wir überspringen. Dies ist eine Rebase.
  18. Stützen Sie Saras Zweig auf den von Omar um. Es hört auf mit einem Konflikt.
  19. Jetzt verfügt das Banner über eine Schaltfläche zum Überspringen. Eine Zusammenführung hatte noch nie eins.
  20. Skip lässt Saras Verpflichtung außer Acht Ergebnis. Sag das laut.
  21. Wählen Sie Einmal überspringen.
  22. Die Seite zeigt Omars Überschrift. Saras branch sitzt jetzt auf seinem Commit.
  23. Überspringen ist keine Lösung. Es wurde gelöscht Saras Veränderung gegenüber diesem Ergebnis.
  24. Im Terminal zeigt git status an, was ist aktiv, und die Befehle.
  25. Die Zusammenführung: Fügen Sie die aufgelöste Datei hinzu, dann git Zusammenführen weiter.
  26. Der Abbruch: Die Zweigspitze ist die gleiche vorher und nachher.
  27. Der Skip: Git Rebase Skip und der Zweig sitzt auf Omars Commit.
  28. In jeder Kopie ist der Status leer und nichts bleibt unvermischt.
  29. Ändern Sie die Eingabe: Lösen Sie dann die Datei auf Wählen Sie stattdessen Abbrechen.
  30. Ihre Auflösung wird nach einer Weile verworfen Der Wiederherstellungs-Snapshot wird gespeichert.
  31. Benutzen Sie niemals Reset Hard, um zu entkommen. Abbruch ist der sichere Ausweg.
  32. Wenn Sie versehentlich übersprungen haben, ist das Commit noch im Reflog.
  33. Übung: Benennen Sie die Operation, die Wahl, und den Korrekturabzug für jede Kopie.
  34. Als nächstes kopieren Sie einen einzelnen Commit auf einen anderen Zweig mit Rosinenpickel.