0Pricing
Git & GitHub Professional Workflow · Lezione

Comprendere gli hook di Git

Esplori i diversi tipi di hook di Git e i punti di esecuzione nel workflow di Git.

Comprendere gli hook di Git è una lezione Git & GitHub Professional Workflow gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Git & GitHub Professional Workflow, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.

Cosa sono gli hook di Git?

Benvenuto negli hook di Git! Gli hook di Git sono script potenti e personalizzabili che Git esegue automaticamente prima o dopo eventi come il commit, il push o la ricezione di commit inviati.

Li si può considerare checkpoint o azioni automatizzati nel flusso di lavoro Git. Aiutano a imporre gli standard del progetto, automatizzare le attività e integrarsi con altri sistemi.

Dove si trovano gli hook

Ogni repository Git include una directory .git/hooks. Al suo interno si trovano script di esempio per gli hook (di solito con estensione .sample).

Per attivare un hook, basta rimuovere l'estensione .sample e rendere eseguibile il file. Git lo eseguirà al momento opportuno.

  • Posizione: .git/hooks/
  • File: script shell (Bash, Python, Ruby ecc.)
  • Attivazione: rinominare il file e renderlo eseguibile

Lato client e lato server

Gli hook di Git sono suddivisi in due categorie principali in base al luogo in cui vengono eseguiti:

  • Hook lato client: vengono eseguiti sul computer locale (ad esempio prima di un commit o di un rebase). Servono per automatizzare il flusso di lavoro personale e applicare le regole in locale.
  • Hook lato server: vengono eseguiti sul server Git remoto (ad esempio quando si esegue il push del codice in un repository condiviso). Applicano le regole dell'intero progetto per tutti.

Hook lato client: pre-commit

L'hook pre-commit è uno degli hook lato client più comuni. Viene eseguito *prima* che Git crei ufficialmente un commit.

Se lo script pre-commit termina con uno stato diverso da zero, Git annulla il commit. È ideale per attività come:

  • analisi statica del codice (controllo degli errori di stile)
  • esecuzione di test unitari
  • controllo della presenza di file di grandi dimensioni o dati sensibili

Hook lato client: commit-msg

L'hook commit-msg viene eseguito *dopo* l'inserimento del messaggio di commit, ma *prima* che il commit venga finalizzato.

È utile per verificare che i messaggi dei commit rispettino convenzioni o formati specifici. Ad esempio, può controllare se:

  • il messaggio inizia con l'ID di un ticket (ad esempio [JIRA-123])
  • la lunghezza del messaggio rientra nei limiti
  • sono presenti o assenti determinate parole chiave

Hook lato client: post-commit

L'hook post-commit viene eseguito *immediatamente dopo* la creazione corretta di un commit.

A differenza di pre-commit o commit-msg, questo hook non può modificare l'esito del commit. Viene spesso usato per notifiche o integrazioni, ad esempio per:

  • notificare i membri del team
  • aggiornare uno strumento di gestione dei progetti
  • avviare una build di integrazione continua (CI), anche se per questo scopo sono più comuni gli hook lato server

Hook del server: pre-receive

Passando agli hook lato server, pre-receive viene eseguito *prima* che qualsiasi riferimento, come branch o tag, venga aggiornato nel repository remoto.

Questo hook è potente per applicare policy fondamentali del repository, ad esempio:

  • Impedire i push diretti al branch main
  • Assicurarsi che tutti i commit siano firmati
  • Convalidare l'identità dell'autore del commit

Se questo hook termina con un codice diverso da zero, l'intero push viene rifiutato.

Hook del server: post-receive

L'hook post-receive viene eseguito *dopo* che un push ha aggiornato correttamente i riferimenti nel repository remoto.

Come post-commit, questo hook non può rifiutare il push. Viene comunemente utilizzato per:

  • Avviare pipeline CI/CD
  • Aggiornare strumenti esterni per il monitoraggio dei problemi
  • Inviare notifiche email al team
  • Eseguire il deploy del codice in un ambiente di staging

Creazione di un hook semplice

Per creare un hook, è sufficiente creare un file con il nome dell'hook, ad esempio pre-commit, nella directory .git/hooks/. Creiamone uno molto semplice:

#!/bin/sh

# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0

Rendere eseguibili gli hook

Dopo aver creato lo script dell'hook, è necessario renderlo eseguibile. In caso contrario, Git non lo eseguirà. Utilizzi il comando chmod nel terminale:

chmod +x .git/hooks/pre-commit

Ora, ogni volta che proverà a eseguire un commit, Git eseguirà questo script!

Verifica rapida: tempistica degli hook

Gli hook di Git vengono eseguiti in momenti specifici del flusso di lavoro. Comprenderne la tempistica è fondamentale per utilizzarli in modo efficace.

Riepilogo: comprendere gli hook di Git

Ha mosso il primo passo nel potente mondo degli hook di Git!

  • Gli hook di Git sono script che automatizzano le azioni durante gli eventi di Git.
  • Si trovano nella directory .git/hooks/ del repository.
  • Gli hook possono essere lato client (sulla macchina locale) o lato server (nel repository remoto).
  • Hook fondamentali come pre-commit e pre-receive possono applicare policy bloccando le operazioni.
  • Hook come post-commit e post-receive servono per notifiche o integrazioni successive all'azione.

Ora passeremo all'implementazione di esempi pratici di hook specifici!

Domande Frequenti

La lezione «Comprendere gli hook di Git» è gratuita?

Sì — il testo completo di «Comprendere gli hook di Git» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Git & GitHub Professional Workflow, passa a CoddyKit PRO. Il corso Git & GitHub Professional Workflow include 4 lezioni in totale.

Cosa imparerò in «Comprendere gli hook di Git»?

Esplori i diversi tipi di hook di Git e i punti di esecuzione nel workflow di Git. Eserciti Git & GitHub Professional Workflow con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Git & GitHub Professional Workflow?

Non è richiesta alcuna esperienza precedente. Git & GitHub Professional Workflow su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Comprendere gli hook di Git»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Git & GitHub Professional Workflow?

Sì. Ogni lezione Git & GitHub Professional Workflow include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Comprendere gli hook di Git
  2. Hook pre-commit e post-merge
  3. Personalizzazione della configurazione di Git
  4. Condividere gli hook con Husky
← Torna a Git & GitHub Professional Workflow