0Pricing
DevOps Bootcamp · 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 DevOps Bootcamp 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 DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp 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 DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp 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 DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp 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 DevOps Bootcamp