Vai al contenuto
GitTree

Lezione 14 · Lavoro quotidiano

Tag, annotazioni e denominazione delle versioni

Crea una v0.1.0 annotata nel commit principale ispezionato e invia solo quel tag all'origine locale. Distinguere un oggetto tag da un ramo, una firma e una versione ospitata.

Avanzamenti salvati in questo browser.

La riproduzione carica il video da YouTube (modalità ottimizzata per la privacy).

Narrazione in inglese · English and Arabic didascalie

Apri la pagina del videoGuarda su YouTube

Cosa imparerai

  • Crea un tag annotato con un messaggio intenzionale.
  • Verifica l'oggetto tag e il commit separato separatamente.
  • Invia un tag esplicito senza pubblicazione di tutti i tag.
  • Mantieni la creazione dei tag distinta da una versione ospitata.

Prima di iniziare

Inizia da dove è terminata la lezione 13: main/H7 clean, server main H7, funzionalità pubblicata in F1; non esiste alcun tag v0.1.0. La firma del tag demo locale non è esplicitamente richiesta.

Il video è stato registrato con Git 2.52.0 e GitTree 2.0 il Ubuntu 24.04: il tag è stato creato e inserito nell'app; lo stato precedente, il nome duplicato rifiutato e i controlli eseguiti nel terminale. Non è stato eseguito nulla su macOS o Windows e Ubuntu è l'unico sistema Linux registrato. Il Git floor di origine di GitTree è 2.39.0.

GitTree ti chiede di accedere; il piano gratuito copre quindi ogni passaggio qui. Non è necessario alcun account fornitore, Pro/prova, credenziale API o servizio Internet. Un'origine nuda locale non è GitLab o CI. Tutte le identità utilizzano example.com; non eseguire mai questa lezione all'interno di un checkout di origine.

Effettua mutazioni tramite GitTree o il percorso nativo su input identici, non entrambi consecutivamente. È possibile seguire anche la verifica di sola lettura. Qualsiasi preparazione descritta come lavoro terminale è etichettata come preparazione nativa, mai come funzionalità inventata dell'app.

Effetti del concetto e dello stato

Un ramo normalmente avanza con i commit; un tag di rilascio è un nome deliberatamente stabile. Un tag leggero nomina direttamente un oggetto; un tag annotato aggiunge il proprio oggetto tag, tagger e messaggio.

v0.1.0 nomina qui un oggetto tag. v0.1.0^{} lo inserisce nel commit. Sono previsti ID oggetto diversi per questi due livelli e non indicano due versioni.

L'annotazione non è una firma crittografica. Pubblicare un tag Git non significa creare note di rilascio del provider, caricare risorse o distribuire una versione desktop. Nessuna di queste azioni esterne viene eseguita qui.

Crea aggiunge refs/tags/v0.1.0 più un oggetto tag; push aggiunge il tag del server selezionato. HEAD, rami locali, indice e file di lavoro non si spostano.

Preparare lo stato esatto del progetto

Utilizza il main originale dopo la lezione 13. Ispeziona l'effettivo SHA H7 e verifica che il tag sia assente prima di crearlo. Non aggiungere un commit del notebook dopo l'etichettatura.

Tra GitTree

Tavolozza: Comando+Maiusc+P (Ctrl+Maiusc+P su Ubuntu); digitare il comando con il nome esatto e selezionarlo. Le azioni di riferimento con nome utilizzano il menu contestuale di quella riga, non una scorciatoia della tavolozza senza argomenti.

  1. Seleziona la riga effettiva del grafico principale/H7 (documenti: aggiungi il promemoria di revisione di Leo); conferma la modifica e l'identità del piè di pagina, quindi fai clic con il pulsante destro del mouse.
  2. Apri Tag Here e scegli Create Annotated Tag Here… (il menu della riga elenca anche un semplice Create Tag Here…, che rende un tag leggero). La finestra di dialogo è intitolata "Crea un tag annotato in" l'ID breve del commit.
  3. Imposta il nome del tag v0.1.0 e il checkpoint del corso delle funzionalità GitTree utilizzabili per il primo messaggio.
  4. Sotto Signing le scelte sono Segui configurazione Git, Firma questo tag e Don’t sign this tag; la finestra di dialogo rileva che Git config non firma i tag (tag.gpgSign non è impostato). Seleziona Non firmare questo tag per questa lezione esplicita non firmata; non modificare la configurazione della firma globale.
  5. Fai clic su Crea tag una volta e attendi; conferma che la v0.1.0 etichetta il commit previsto senza modificare il checkout.
  6. Nel gruppo Tags del pannello laterale, fai clic con il pulsante destro del mouse su v0.1.0 → Push Tag (lo stesso menu offre anche Elimina tag... e Elimina tag dal telecomando..., che questa lezione non utilizza). L'avviso recita "Pushed tag v0.1.0".
  7. Verifica il tipo di oggetto tag nativo, il messaggio e il commit peeling più l'identità del tag server; non confondere l'annotazione con la firma.
  8. Lasciare il main pulito e l'etichetta invariata. Non utilizzare Push All Tags né creare una versione del provider.

Per ogni commit ordinario: Summary è l'oggetto indicato; Descrizione vuota; Modifica commit precedente, Salta hook, Aggiungi autore firmato, Autore diverso, Push dopo commit e Consenti commit vuoto disattivato; nessun coautore. Metti in stage solo i file nominati, quindi applica le modifiche a N file una volta (File per uno) o Comando+Invio come alternativa. Aspetta il risultato reale. Una lezione che modifica esplicitamente cambia solo l'opzione dichiarata.

Nel terminale

Equivalente nativo a 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 ha la forma abbreviata -a (git tag -a v0.1.0 -m "message") e --message è -m; in entrambi i casi Git memorizza un oggetto tag con il proprio messaggio, a differenza del leggero git tag v0.1.0.

Crea/invio con successo; tipo e output del messaggio:

Uscita
tag
First usable GitTree Features course checkpoint

Lo SHA sbucciato è uguale al principale effettivo. ls-remote restituisce gli ID effettivi dell'oggetto tag e del commit peeled; registrare questi valori variabili, non le etichette del modello. Lo stato finale è vuoto. Tentativo separato di duplicazione del nome:

Command · bash
git tag v0.1.0

Stderr effettivo, uscita 128:

Uscita
fatal: tag 'v0.1.0' already exists

L'etichetta originale rimane; non usare mai -f per nascondere la collisione.

Risultato

Where you end: La v0.1.0 annotata esiste localmente e sull'origine nuda locale, messaggio Primo utilizzabile GitTree Caratteristiche checkpoint del corso, commit rimosso H7. Principale/HEAD/indice/lavoro invariato; nessuna versione ospitata o firma richiesta.

Errori comuni

  • Chiamare un tag annotato firmato.
  • Contrassegnare la vecchia riga selezionata anziché quella principale.
  • Spingere involontariamente ogni tag locale.

Se qualcosa va storto

Annulla una creazione errata prima di confermare. Se un tag locale è sbagliato, controlla la sua destinazione effettiva e se è stato pubblicato prima di qualsiasi eliminazione esplicita; Il rifiuto duplicato nativo preserva il rif esistente.

Controlla la tua comprensione

Rispondi a ciascuna domanda, quindi leggi il motivo. Le domande contrassegnate come "Obbligatorio" contano ai fini del completamento della lezione.

  1. Domanda 1 di 6

    Cos'è la v0.1.0 qui?

    Scegli una risposta.

  2. Domanda 2 di 6

    Quali affermazioni sono giustificate?

    Scegli ogni risposta applicabile.

  3. Domanda 3 di 6
    Obbligatorio

    Il tagging crea un altro commit principale?

    Scegli una risposta.

  4. Domanda 4 di 6
    Obbligatorio

    Riutilizzare lo stesso nome senza forzature: risultato?

    Scegli una risposta.

  5. Domanda 5 di 6

    Tag e ID principali differiscono: corrotti?

    Scegli una risposta.

  6. Domanda 6 di 6
    Obbligatorio

    Cosa dimostra il risultato?

    Scegli ogni risposta applicabile.

0 di 6 corretto

Rispondi correttamente alle domande richieste per completare la lezione.

Controllato in questo browser.

Pratica

Verifica il tag del tipo di oggetto, l'annotazione esatta, lo SHA=main staccato e entrambi i livelli dei tag del server. Prevedi il rifiuto duplicato preservando il primo tag e il lavoro pulito.

La tua conferma: il sito non può vedere il tuo computer.

Per completare la lezione rispondere correttamente alle domande richieste e confermare l'esercizio pratico.

Riepilogo

  • L'annotazione aggiunge un oggetto tag.
  • Spingi solo il tag scelto.
  • I tag Git e le versioni ospitate differiscono.

Termini del glossario introdotti

Tag annotato — وسم مشروح; tag leggero — وسم خفيف; tagger: منشئ الوسم; commit sbucciato — الإيداع المحسوم.

Trascrizione video

La narrazione del video, spunto per spunto.

Mostra la trascrizione
  1. Inizia dal checkpoint esatto.
  2. Assegna un nome al ramo, indice e versione funzionante.
  3. Preparare solo la copia isolata del corso.
  4. Scegli il commit esatto prima di taggare.
  5. Crea un tag annotato in quel commit.
  6. Scrivi il nome e l'annotazione significativa.
  7. Annotare non significa firma crittografica.
  8. Un tag non cambia il tuo ramo.
  9. Invia solo il tag denominato.
  10. Stacca il tag per verificarne il commit.
  11. Non inventare una versione ospitata.
  12. Cos'è la v0.1.0 qui?
  13. Il tipo di oggetto verificato è tag e si stacca dal main.
  14. Quali affermazioni sono giustificate?
  15. L'annotazione senza segno aggiunge metadati ma non sposta HEAD.
  16. Il tagging crea un altro commit principale?
  17. I punti del tag ref/oggetto a un commit esistente.
  18. Riutilizzare lo stesso nome senza forzature: risultato?
  19. Il tentativo di duplicazione misurato uscito128 e conservato il tag.
  20. Tag e ID principali differiscono: corrotti?
  21. L'oggetto proprio di un tag annotato differisce dalla destinazione del commit.
  22. Cosa dimostra il risultato?
  23. Leggi entrambi i livelli degli oggetti e il rif. del server effettivamente scelto.
  24. Verificare il risultato reale, non solo un messaggio.
  25. Prevedere l'input modificato prima di agire.
  26. Conservare il lavoro utile prima del ripristino.
  27. Dimostrare il checkpoint prima di continuare.
  28. Conserva il risultato verificato per il passo successivo.