Zum Inhalt springen
GitTree

Lektion 14 · Alltagsarbeit

Tags, Anmerkungen und Release-Benennung

Erstellen Sie eine mit Anmerkungen versehene Version 0.1.0 beim überprüften Haupt-Commit und übertragen Sie nur dieses Tag an den lokalen Ursprung. Unterscheiden Sie ein Tag-Objekt von einem Branch, einer Signatur und einem gehosteten Release.

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

  • Erstellen Sie einen mit Anmerkungen versehenen Tag mit einer bewussten Botschaft.
  • Überprüfen Sie das Tag-Objekt und das geschälte Commit separat.
  • Pushen Sie ein explizites Tag ohne Veröffentlichung aller Tags.
  • Halten Sie die Tag-Erstellung von einer gehosteten Version getrennt.

Bevor Sie beginnen

Beginnen Sie dort, wo Lektion 13 endete: main/H7 clean, Server main H7, Feature veröffentlicht bei F1; Es ist kein v0.1.0-Tag vorhanden. Eine lokale Demo-Tag-Signierung ist ausdrücklich nicht erwünscht.

Das Video wurde mit Git 2.52.0 und GitTree 2.0 am Ubuntu 24.04 aufgenommen: Das Tag wurde erstellt und in die App gepusht; der vorherige Status, der abgelehnte doppelte Name und die im Terminal durchgeführten Prüfungen. Auf macOS oder Windows wurde nichts ausgeführt, und Ubuntu ist das einzige aufgezeichnete Linux-System. Die Quell-Git-Ebene von GitTree ist 2.39.0.

GitTree fordert Sie auf, sich anzumelden; Der Free-Plan deckt hier dann jeden Schritt ab. Es ist kein Anbieterkonto, Pro-/Testversion, API-Anmeldeinformationen oder Internetdienst erforderlich. Ein lokaler nackter Ursprung ist nicht GitLab oder CI. Alle Identitäten verwenden example.com; Führen Sie diese Lektion niemals innerhalb einer Quellprüfung durch.

Nehmen Sie Mutationen entweder über GitTree oder den nativen Pfad an identischen Eingaben vor, nicht beide nacheinander. In beiden Fällen kann eine schreibgeschützte Überprüfung erfolgen. Jede als Terminalarbeit beschriebene Vorbereitung wird als native Vorbereitung bezeichnet und niemals als erfundene App-Funktion.

Konzept und Zustandswirkungen

Ein Zweig schreitet normalerweise mit Commits voran; Ein Release-Tag ist ein bewusst stabiler Name. Ein Lightweight-Tag benennt ein Objekt direkt; Ein mit Anmerkungen versehenes Tag fügt sein eigenes Tag-Objekt, seinen eigenen Tagger und seine eigene Nachricht hinzu.

v0.1.0 benennt hier ein Tag-Objekt. v0.1.0^{} schält es zum Commit. Unterschiedliche Objekt-IDs für diese beiden Ebenen werden erwartet und weisen nicht auf zwei Releases hin.

Annotation ist keine kryptografische Signatur. Durch das Veröffentlichen eines Git-Tags werden keine Anbieter-Versionshinweise erstellt, Assets hochgeladen oder eine Desktop-Version verteilt. Keine dieser externen Aktionen wird hier durchgeführt.

Erstellen fügt refs/tags/v0.1.0 plus ein Tag-Objekt hinzu; Push fügt das ausgewählte Server-Tag hinzu. HEAD, lokale Zweige, Index und Arbeitsdateien werden nicht verschoben.

Bereiten Sie den genauen Projektstand vor

Verwenden Sie nach Lektion 13 das ursprüngliche Hauptelement. Überprüfen Sie den tatsächlichen H7-SHA und vergewissern Sie sich, dass das Tag nicht vorhanden ist, bevor Sie es erstellen. Fügen Sie nach dem Markieren kein Notebook-Commit hinzu.

In GitTree

Palette: Befehl+Umschalt+P (Strg+Umschalt+P bei Ubuntu); Geben Sie den genau benannten Befehl ein und wählen Sie ihn aus. Benannte Ref-Aktionen verwenden das Kontextmenü dieser Zeile und keine argumentfreie Palettenverknüpfung.

  1. Wählen Sie die eigentliche Haupt-/H7-Diagrammzeile aus (Dokumente: Leos Rezensionserinnerung hinzufügen); Bestätigen Sie die Änderung und Identität der Fußzeile und klicken Sie dann mit der rechten Maustaste darauf.
  2. Öffnen Sie Tag Here und wählen Sie Create Annotated Tag Here… (im Menü der Zeile wird auch ein einfaches Create Tag Here… aufgeführt, wodurch ein leichtgewichtiges Tag entsteht). Der Dialog trägt den Titel „Erstellen Sie ein mit Anmerkungen versehenes Tag unter“ der Kurz-ID des Commits.
  3. Legen Sie den Tag-Namen v0.1.0 und den nutzbaren Message First-GitTree-Features-Kursprüfpunkt fest.
  4. Unter Signing stehen die Optionen „Git-Konfiguration folgen“, „Dieses Tag signieren“ und „Don’t sign this tag“ zur Auswahl. Im Dialogfeld wird darauf hingewiesen, dass die Git-Konfiguration keine Tags signiert (tag.gpgSign ist nicht festgelegt). Wählen Sie „Dieses Tag nicht signieren“ für diese explizite, nicht signierte Lektion aus. Ändern Sie die globale Signaturkonfiguration nicht.
  5. Klicken Sie einmal auf „Tag erstellen“ und warten Sie. Bestätigen Sie, dass v0.1.0 das beabsichtigte Commit kennzeichnet, ohne den Checkout zu ändern.
  6. Klicken Sie in der Gruppe Tags des Seitenbereichs mit der rechten Maustaste auf v0.1.0 → Push Tag (dasselbe Menü bietet auch „Tag löschen…“ und „Tag aus Remote löschen…“, die in dieser Lektion nicht verwendet werden). Der Hinweis lautet „Pushed tag v0.1.0“.
  7. Überprüfen Sie den nativen Tag-Objekttyp, die Nachricht und das geschälte Commit sowie die Server-Tag-Identität. Verwechseln Sie Anmerkung nicht mit Signieren.
  8. Lassen Sie main clean und das Tag unverändert. Verwenden Sie keine Push-All-Tags und erstellen Sie kein Provider-Release.

Für jeden gewöhnlichen Commit: Zusammenfassung ist der angegebene Betreff; Beschreibung leer; Vorheriges Commit ändern, Hooks überspringen, „Signiert von“ und „Anderer Autor“ hinzufügen, „Nach Commit verschieben“ und „Leeres Commit deaktivieren“ zulassen; keine Co-Autoren. Stellen Sie nur die benannten Dateien bereit und übernehmen Sie dann die Änderungen einmal in N Dateien (Datei für eine) oder alternativ Befehl+Eingabetaste. Warten Sie auf das tatsächliche Ergebnis. Eine Lektion, die explizit Änderungen vornimmt, ändert nur die angegebene Option.

Im Terminal

Natives Äquivalent bei clean main:

Command · bash
git tag --annotate --no-sign v0.1.0 --message "First usable GitTree Features course checkpoint"
git cat-file -t v0.1.0
git for-each-ref --format='%(contents:subject)' refs/tags/v0.1.0
git rev-parse 'v0.1.0^{}'
git push --quiet origin refs/tags/v0.1.0
git ls-remote --tags origin refs/tags/v0.1.0 'refs/tags/v0.1.0^{}'
git status --short

--annotate hat die Kurzform -a (git tag -a v0.1.0 -m "message") und --message ist -m; So oder so speichert Git im Gegensatz zum einfachen git tag v0.1.0 ein Tag-Objekt mit einer eigenen Nachricht.

Erstellen/Push erfolgreich; Typ und Nachrichtenausgabe:

Ausgabe
tag
First usable GitTree Features course checkpoint

Der geschälte SHA entspricht der tatsächlichen Hauptmenge. ls-remote gibt tatsächliche Tag-Objekt- und Peeled-Commit-IDs zurück; Zeichnen Sie diese Variablenwerte auf, keine Modellbezeichnungen. Der Endstatus ist leer. Separater Duplikatversuch:

Command · bash
git tag v0.1.0

Tatsächlicher stderr, Ausgang 128:

Ausgabe
fatal: tag 'v0.1.0' already exists

Der ursprüngliche Tag bleibt erhalten; Verwenden Sie niemals -f, um die Kollision zu verbergen.

Ergebnis

Where you end: Annotated v0.1.0 existiert lokal und auf dem lokalen nackten Ursprung, Meldung Erste verwendbare GitTree Features Kurs-Checkpoint, geschältes Commit H7. Main/HEAD/index/work unverändert; Es wird keine gehostete Veröffentlichung oder Signatur beansprucht.

Häufige Fehler

  • Aufrufen eines mit Anmerkungen versehenen Tags signiert.
  • Markieren Sie die ausgewählte alte Zeile anstelle der Hauptzeile.
  • Unbeabsichtigtes Pushen aller lokalen Tags.

Wenn etwas schief geht

Brechen Sie eine falsche Erstellung ab, bevor Sie sie bestätigen. Wenn ein lokales Tag falsch ist, überprüfen Sie sein tatsächliches Ziel und ob es vor einer expliziten Löschung veröffentlicht wurde. Bei der nativen Duplikatablehnung bleibt der vorhandene Verweis erhalten.

Ü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

    Was ist hier v0.1.0?

    Wählen Sie eine Antwort.

  2. Frage 2 von 6

    Welche Ansprüche sind berechtigt?

    Wählen Sie jede zutreffende Antwort aus.

  3. Frage 3 von 6
    Erforderlich

    Erstellt das Markieren ein weiteres Haupt-Commit?

    Wählen Sie eine Antwort.

  4. Frage 4 von 6
    Erforderlich

    Den gleichen Namen ohne Gewalt wiederverwenden: Ergebnis?

    Wählen Sie eine Antwort.

  5. Frage 5 von 6

    Tag- und Haupt-IDs unterscheiden sich: beschädigt?

    Wählen Sie eine Antwort.

  6. Frage 6 von 6
    Erforderlich

    Was beweist das Ergebnis?

    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

Überprüfen Sie das Objekttyp-Tag, die genaue Annotation, den geschälten SHA=main und beide Server-Tag-Ebenen. Prognostizieren Sie doppelte Ablehnungen und bewahren Sie gleichzeitig das erste Etikett und sorgen Sie für saubere Arbeit.

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

  • Annotation fügt ein Tag-Objekt hinzu.
  • Pushen Sie nur das ausgewählte Tag.
  • Git-Tags und gehostete Versionen unterscheiden sich.

Glossarbegriffe eingeführt

Kommentiertes Tag – وسم مشروح; leichtes Tag – وسم خفيف; tagger – منشئ الوسم; geschälter Commit – الإيداع المحسوم.

Videotranskript

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

Zeigen Sie das Transkript
  1. Beginnen Sie am genauen Kontrollpunkt.
  2. Benennen Sie den Zweig und den Index und Arbeitsversion.
  3. Bereiten Sie nur die isolierte Kurskopie vor.
  4. Wählen Sie vor dem Markieren den genauen Commit aus.
  5. Erstellen Sie bei diesem Commit ein mit Anmerkungen versehenes Tag.
  6. Schreiben Sie den Namen und eine aussagekräftige Anmerkung.
  7. Anmerkung bedeutet nicht kryptografisches Signieren.
  8. Ein Tag wechselt Ihren Zweig nicht.
  9. Pushen Sie nur das benannte Tag.
  10. Ziehen Sie das Tag ab, um seine Übertragung zu überprüfen.
  11. Erfinden Sie kein gehostetes Release.
  12. Was ist hier v0.1.0?
  13. Der verifizierte Objekttyp ist Tag und es schält sich zu main.
  14. Welche Ansprüche sind berechtigt?
  15. Die unsignierte Anmerkung fügt hinzu Metadaten, verschiebt aber HEAD nicht.
  16. Erstellt das Markieren ein weiteres Haupt-Commit?
  17. Die Tag-Referenz-/Objektpunkte zu einem bestehenden Commit.
  18. Den gleichen Namen ohne Gewalt wiederverwenden: Ergebnis?
  19. Der gemessene Duplikatversuch exited128 und das Tag beibehalten.
  20. Tag- und Haupt-IDs unterscheiden sich: beschädigt?
  21. Das eigene Objekt eines mit Anmerkungen versehenen Tags weicht von seinem Commit-Ziel ab.
  22. Was beweist das Ergebnis?
  23. Lesen Sie beide Objektebenen und die tatsächlich gewählte Serverreferenz.
  24. Überprüfen Sie das tatsächliche Ergebnis, nicht nur eine Nachricht.
  25. Sagen Sie die geänderte Eingabe vorher, bevor Sie handeln.
  26. Bewahren Sie nützliche Arbeit vor der Wiederherstellung auf.
  27. Überprüfen Sie den Kontrollpunkt, bevor Sie fortfahren.
  28. Behalten Sie das überprüfte Ergebnis für den nächsten Schritt.