Lektion 8 · Alltagsarbeit
Lesen Sie den Verlauf, ohne den KOPF zu bewegen
Zeichnen Sie die verbleibende Radiusbearbeitung auf, dokumentieren Sie den tatsächlichen Verlauf und vergleichen Sie Revisionssätze mit Dateibaumunterschieden. Das Auswählen einer Diagrammzeile ist eine Inspektion und kein Verzweigungswechsel.
- Ebene: Anfänger
- 8 Min. gelesen
- 4 Min. Video
- Aktualisiert
- Vor dieser Lektion: Stellen Sie den beabsichtigten Snapshot bereit und führen Sie Ihren ersten Commit durch, Übernehmen Sie den ausgewählten Teil, nicht die gesamte Datei
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 ansehenWas Sie lernen werden
- Unterscheiden Sie zwischen HEAD, einem ausgewählten Commit, Autor und Committer.
- Folgen Sie den Eltern und Vorfahren der ersten Eltern.
- Lesen Sie Zweipunkt-/Dreipunkt-Protokollsätze, ohne sie mit Diff-Endpunkten zu verwechseln.
- Vergleichen Sie zwei tatsächliche Commits in GitTree, ohne den Verlauf neu zu schreiben.
Bevor Sie beginnen
Sie beginnen dort, wo Lektion 7 aufgehört hat: main hat drei Commits aus den Lektionen 5 bis 7. Nur der CSS-Radius bleibt geändert: HEAD und der Index enthalten CSS-02-INDEX, die Arbeitsdatei CSS-02-WORKING. Keine Fernbedienung. Das Video wurde mit Git 2.52.0 und GitTree 2.0 am Ubuntu 24.04 aufgezeichnet: Beide Commits, das Dokument, die Diagramminspektion, die Suche, „Zu HEAD springen“ und „Referenzen vergleichen“ wurden in der App ausgeführt, und die Terminalprüfungen wurden mit dem verglichen, was die App erstellt hat, sodass die angezeigten Commit-IDs diejenigen sind, die die App verglichen hat. Der Fall des divergenten Zweigs ist ein Diagramm: Es wurde kein Feature-Zweig erstellt. Auf macOS oder Windows wurde nichts ausgeführt, und Ubuntu ist das einzige aufgezeichnete Linux-System. Das Quellminimum von GitTree ist Git 2.39.0; Sobald Sie angemeldet sind, sind lokale Inspektionen und Commits im kostenlosen Plan enthalten.
Konzept
Ein Commit zeichnet einen Baum, Metadaten und übergeordnete IDs auf. Ein Zweig benennt einen Commit; HEAD benennt normalerweise den aktuellen Zweig. Durch Klicken auf eine andere Diagrammzeile werden die selection der App, nicht HEAD, die Zweig- oder Festplattendateien geändert. Der Autor gibt an, wer das Werk geschrieben hat; Der Committer zeichnet auf, wer diesen Commit aufgezeichnet hat. Es handelt sich hier zufällig um dieselbe fiktive Identität.
Bei einer linearen Kette folgt HEAD~1 einer ersten übergeordneten Kante; HEAD~2 folgt zwei. HEAD^1 ist das erste übergeordnete Element; HEAD^2 bedeutet das second parent of one commit, nicht „zwei Commits zurück“. Ein Nicht-Merge-Commit hat kein zweites übergeordnetes Element.
git log A..B bedeutet erreichbar von B ausgenommen erreichbar von A. git log A...B bedeutet symmetrischer Unterschied der Erreichbarkeit. git diff A B vergleicht Endpunktbäume, während git diff A...B merge-base(A,B) mit B vergleicht. Ein Dreipunkt-Log und ein Dreipunkt-Diff stellen nicht die gleiche Frage. In dieser linearen Geschichte stimmen einige Ergebnisse zufällig überein; Verallgemeinern Sie diesen Zufall nicht auf divergierende Zweige. Revisionsnotation, Unterschiedssemantik.
Das Lesen/Auswählen/Suchen ändert keinen Index, keine Arbeitsbytes oder Referenzen. Die beiden expliziten Commits dieser Lektion verschieben den lokalen Haupt-Commit: Radius zuerst, Dokumentation zweitens. Keine Fernänderungen.
Vollständiges Geschichtsdokument
Übernehmen Sie zunächst die vorhandene Radiusbearbeitung wie unten gezeigt. Erstellen Sie dann docs/history.md mit diesem vollständigen UTF-8/LF-Körper; Sein letztes Element beschreibt den Commit, der das Dokument enthalten wird, nicht einen erfundenen SHA.
# GitTree Features history
The first-parent chain on main, oldest first:
1. feat: add the GitTree Features hero
2. feat: add styling and local project checks
3. feat: refine the hero and card spacing
4. style: finish the card radius change
5. docs: record logs-and-revisions practice
After this document is committed, HEAD names item 5.
HEAD~1 names item 4; HEAD~2 names item 3.
Selecting a graph row does not move HEAD.
These labels are descriptions, not fabricated commit SHAs.
All identities in this project are fictional.Fügen Sie dieser Fünf-Commit-Kette nicht das optionale Übungsnotizbuch oder zusätzliche Bereinigungs-Commits hinzu.
In GitTree
- Palette Show Working Changes (Befehl/Strg+Umschalt+P zum Öffnen der Palette). Klicken Sie unter Unstaged Files auf „styles.css“. Bestätigen Sie, dass nur noch der Radius 0,5rem → 0,75rem verbleibt; Wiederholen Sie nicht die vorherige Breitenänderung.
- Wählen Sie die entsprechende Zeilenaktion Stage File, geben Sie Zusammenfassung
style: finish the card radius changeein, normale Optionen aus, dann Commit Changes to 1 File (oder einmal Befehl/Strg+Eingabe). Überprüfen Sie vier Commits und bereinigen Sie den verfolgten Status. - Palette New File… → Path from the project folder = docs/history.md → Create. Fügen Sie das vollständige Dokument und Save ein. Back to Graph → Show Working Changes → Staging-Datei für docs/history.md.
- Zusammenfassung
docs: record logs-and-revisions practice; Übertragen Sie eine Datei. Die erwartete Kette hat jetzt fünf Commits. - Klicken Sie auf die Root-Hero-Zeile. Überprüfen Sie den tatsächlichen SHA-, Betreff-, Autor/Committer- und root commit-Elternstatus in den Commit-Details. Klicken Sie auf die neueste Zeile. Vergleichen Sie die übergeordnete Beziehung. Rufen Sie Check Out This Commit nicht nur auf, um es zu lesen.
- Schalten Sie in den Commit-Details View all files um, um den gesamten Commit-Baum von nur geänderten Pfaden zu unterscheiden; Überprüfen Sie das Dokument in seiner aufgezeichneten Revision. Die Arbeitsdatei wird dadurch nicht verändert.
- Rückgabe Back to Graph; Verwenden Sie die Palette Search Loaded History oder Befehl/Strg+F while the graph is active, geben Sie
radiusein und überprüfen Sie den passenden geladenen Verlauf. In einem Editor findet derselbe Akkord Editortext. Löschen Sie anschließend die Suche. Eine Suche nach geladenem Verlauf ist keine serverweite Verlaufsabfrage. - Palette Jump to HEAD, Befehl/Strg+Umschalt+H, lokalisiert den aktuellen Tipp. Auswahl/Suche kann verschoben werden, während native
git symbolic-ref --short HEADweiterhin main meldet. - Verwenden Sie natives
git rev-parse HEAD~2, um seine real-Commit-ID zu erhalten. Es wird kein fester Kurs-SHA mitgeliefert. Palette Compare References… (repo.compareRefs) öffnet Compare References. Fügen Sie in Old side die gemessene ID ein und wählen Sie die Commit-Option aus. Wählen Sie in New side KOPF. Der Picker akzeptiert eine Commit-ID, kein Versprechen, dass dort beliebige Revisionsausdrücke geparst werden. - Wählen Sie unter What to compare The two endpoints und dann Compare. Erwarten Sie Unterschiede zwischen docs/history.md und style.css für diese Kette. Vergleich erneut öffnen/ändern und Changes since the merge base mit den gleichen Seiten wählen: Durch lineare Abstammung stimmt das Endpunktergebnis hier überein. Leiten Sie aus dieser Ansicht kein symmetrisches Protokollverhalten ab. Cancel wird beendet, ohne den Verlauf zu ändern.
Im Terminal
Native Mutationsalternative, nur vor entsprechendem App-Erfolg:
git add -- styles.css
git commit --quiet -m "style: finish the card radius change"Beides gelang im Stillen. Nach dem Speichern des vollständigen Dokuments:
git add -- docs/history.md
git commit --quiet -m "docs: record logs-and-revisions practice"
git log --reverse --format=%sVollständige beobachtete Kette:
feat: add the GitTree Features hero
feat: add styling and local project checks
feat: refine the hero and card spacing
style: finish the card radius change
docs: record logs-and-revisions practiceSet vs. Baum prüfen:
git log --format=%s HEAD~2..HEAD
git log --format=%s HEAD~2...HEADJede Abfrage wird separat gedruckt:
docs: record logs-and-revisions practice
style: finish the card radius changeSie stimmen nur deshalb überein, weil der ältere Endpunkt hier ein Vorfahre ist.
git diff --name-only HEAD~2 HEAD
git rev-list --count HEAD
git symbolic-ref --short HEADAusgaben in der Reihenfolge:
docs/history.md
styles.css
5
mainBei den beiden benannten Dateien handelt es sich um Baumunterschiede, nicht um die Identitäten der beiden vom Protokoll zurückgegebenen Commits.
git rev-parse --verify --quiet HEAD^2Kein stdout/stderr und kein Exit 1 beobachtet: Der letzte Commit ist keine Zusammenführung. Verwenden Sie stattdessen HEAD~2 für zwei Schritte des ersten übergeordneten Elements. So identifizieren Sie eine echte Vergleichs-ID:
git rev-parse HEAD~2Lesen Sie die tatsächliche Ausgabe während der Probe. Ein gemessener SHA ändert sich mit Commit-Metadaten und darf nicht von einer Modellbezeichnung kopiert werden.
Ergebnis
Am Ende dieser Lektion: fünf Commits auf main in der dokumentierten Reihenfolge; Nachverfolgte Arbeit/Index bereinigt, keine Fernbedienung oder Operation im Gange. CSS hat jetzt einen Radius von 0,75 rem und docs/history.md ist festgeschrieben. Beim Lesen einer vergangenen Diagrammzeile wurde HEAD nicht abgetrennt.
Häufige Fehler
- Ausgewählte Zeile als ausgechecktes Commit behandeln: HEAD unabhängig prüfen.
- Lesen von ^2 als ~2: zweites übergeordnetes Element im Vergleich zu zwei ersten übergeordneten Kanten.
- Anwenden der symmetrischen logarithmischen Bedeutung auf das Dreipunkt-Diff: Diff ist von der Zusammenführungsbasis nach rechts gerichtet.
- Angenommen, die Diagrammsuche deckt den entladenen/nicht abgerufenen Verlauf ab.
Wenn etwas schief geht
Eine fehlende Überarbeitung kann auf eine unzureichende Abstammung, einen Tippfehler oder eine oberflächliche Grenze hinweisen, nicht aber auf Korruption. Überprüfen Sie die Kette und das ausgewählte Repository. Das Löschen von App-Filtern vor Abschluss eines Commits ist verschwunden. Laden Sie es nicht bei einem beliebigen Anbieter herunter, setzen Sie es nicht zurück oder bezahlen Sie es nicht, nur um eine Auswahl zu reparieren. Wenn ein Dokument bereits vorhanden ist, überprüfen Sie dessen Inhalt, bevor Sie diesen Schritt zum Erstellen einer neuen Datei anwenden.
Ü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.
0 von 6 korrekt
Beantworten Sie die erforderlichen Fragen richtig, um die Lektion abzuschließen.
In diesem Browser überprüft.
Üben
Wählen Sie eine ältere Zeile aus und beweisen Sie, dass HEAD die Hauptzeile bleibt. Erklären Sie, warum zwei Protokolleinträge nur Unterschieden in zwei Pfaden entsprechen können. Geänderte Eingabe: Für einen separaten Zweig mit einem Commit von H3, während sich main auf H5 befindet, wird vorhergesagt, dass main..feature nur diesen Feature-Commit enthält, main...feature jedoch auch H4/H5. Erstellen Sie diesen Zweig nicht im kanonischen Prüfpunkt. Verwenden Sie eine Einwegkopie.
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
- Selection und HEAD haben unterschiedliche Besitzer.
- Übergeordnete Notations- und Revisionssätze beschreiben die Abstammung, keine Dateiänderungen.
- Vergleichen Sie tatsächlich gelöste Endpunkte und beschriften Sie die Frage deutlich.
Verwandt
Glossarbegriffe eingeführt
Commit – إيداع; Elternteil – إيداع أب; ref – مرجع; Revision – مراجعة; Bereich – نطاق; Basis zusammenführen – أساس الدمج; Autor – المؤلف; Committer – المُودِع.
Videotranskript
Die Erzählung des Videos, Stichwort für Stichwort.
Zeigen Sie das Transkript
- Geschichte lesen ohne Umzug Ihrer aktuellen Filiale.
- Schauen Sie sich das zuerst an Unabhängige Bearbeitung, hinterlassen von L007.
- Zeichnen Sie den Radius als eigenen lokalen Commit auf.
- Schreiben Sie die dokumentierte Kette mit Themen, keine erfundenen Hashes.
- Das Dokument wird zum fünfter Commit in dieser Kette.
- Überprüfen Sie vorher die tatsächliche Bestellung Unterrichtsrevisionsnotation.
- Ein Filialname und eine ausgewählte Die Diagrammzeilen sind unterschiedlich.
- Nur die Wurzel auswählen ändert den überprüften Commit.
- Der vollständige Baum ist nicht nur der Die Liste wurde in diesem Commit geändert.
- Durchsuchen Sie den geladenen Verlauf, nicht ein versprochenes serverweites Archiv.
- Setzen Sie die Auswahl auf den aktuellen Tipp zurück.
- Das Terminal unabhängig bestätigt den ausgecheckten Zweig.
- Zwei übergeordnete Schritte sind nicht der zweiter Elternteil eines Commits.
- Dieses Nicht-Merge-Commit hat keinen zweiten Elternteil.
- Diese Sätze stimmen hier überein, weil Die Endpunkte sind Vorfahren.
- Ein Baumunterschied benennt Dateien, keine Reihe von Commit-Identitäten.
- Verwenden Sie eine gemessene Commit-ID in der Vergleichsauswahl.
- Vergleichen Sie die beiden gelösten Bäume, ohne Refs zu ändern.
- Dieser Modus vergleicht die Zusammenführung Basis mit der rechten Seite.
- Ein divergenter Graph ergibt Die beiden Protokollbereiche unterscheiden sich.
- Dreipunktprotokoll und Dreipunkt diff beantworten verschiedene Fragen.
- Eine falsche Auswahl braucht Navigation, keine destruktive Wiederherstellung.
- Überprüfen Sie die Kette und unverändert KOPF vor der Verzweigung.
- Als nächstes erstellen und wechseln Filialnamen bewusst verwenden.