DevOps-bootcamp · Lektion

Förstå Git Hooks

Utforska olika typer av Git Hooks och när de körs i Git-workflowen.

Lektion 1 av 412 steg

Förstå Git Hooks är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad är Git Hooks?

Välkomna till Git Hooks! Git Hooks är kraftfulla, anpassningsbara skript som Git kör automatiskt före eller efter händelser som att skapa commits, pusha eller ta emot pushade commits.

Tänk på dem som automatiserade kontrollpunkter eller åtgärder i ert Git-arbetsflöde. De hjälper er att upprätthålla projektstandarder, automatisera uppgifter och integrera med andra system.

Var finns hooks?

Varje Git-repo innehåller katalogen .git/hooks. Där hittar ni exempel på hook-skript (som vanligtvis slutar på .sample).

För att aktivera en hook tar ni helt enkelt bort tillägget .sample och gör filen körbar. Git kör den då vid rätt tidpunkt.

  • Plats: .git/hooks/
  • Filer: Shell-skript (Bash, Python, Ruby med flera)
  • Aktivering: Byt namn och gör filen körbar

Klient- kontra serversida

Git Hooks delas in i två huvudtyper beroende på var de körs:

  • Hooks på klientsidan: Körs på er lokala dator (till exempel före en commit eller rebase). De används för automatisering av det personliga arbetsflödet och för att upprätthålla lokala regler.
  • Hooks på serversidan: Körs på den fjärranslutna Git-servern (till exempel när ni pushar kod till ett delat repo). De upprätthåller projektgemensamma regler för alla.

Klient-hook: pre-commit

Hooken pre-commit är en av de vanligaste hookarna på klientsidan. Den körs *innan* Git officiellt skapar en commit.

Om skriptet pre-commit avslutas med en status som inte är noll avbryter Git committen. Det passar utmärkt för uppgifter som:

  • Lintning av kod (kontroll av stilfel)
  • Körning av enhetstester
  • Kontroll av stora filer eller känsliga data

Klient-hook: commit-msg

Hooken commit-msg körs *efter* att ni har angett commit-meddelandet men *innan* committen slutförs.

Den här hooken är användbar för att säkerställa att era commit-meddelanden följer specifika konventioner eller format. Den kan till exempel kontrollera om:

  • Meddelandet börjar med ett ärende-ID (till exempel [JIRA-123])
  • Meddelandets längd håller sig inom angivna gränser
  • Specifika nyckelord finns med eller saknas

Klient-hook: post-commit

Hooken post-commit körs *omedelbart efter* att en commit har skapats.

Till skillnad från pre-commit eller commit-msg kan den här hooken inte ändra resultatet av committen. Den används ofta för aviseringar eller integrationer, till exempel:

  • Skicka meddelanden till teammedlemmar
  • Uppdatera ett projekthanteringsverktyg
  • Utlösa ett bygge för kontinuerlig integration (CI) (även om detta är vanligare med hooks på serversidan)

Serverhook: pre-receive

På serversidan körs pre-receive *innan* några referenser (som grenar eller taggar) uppdateras i fjärrarkivet.

Den här hooken är kraftfull när ni vill upprätthålla viktiga regler för arkivet, till exempel:

  • Förhindra direkta pushar till grenen main
  • Säkerställa att alla commits är signerade
  • Validera committens identitet

Om den här hooken avslutas med en status som inte är noll avvisas hela pushen.

Serverhook: post-receive

Hooken post-receive körs *efter* att en push har uppdaterat referenser i fjärrarkivet.

Precis som post-commit kan den här hooken inte avvisa pushen. Den används ofta för att:

  • Starta CI/CD-pipelines
  • Uppdatera externa ärendehanterare
  • Skicka e-postaviseringar till teamet
  • Distribuera kod till en stagingmiljö

Skapa en enkel hook

För att skapa en hook skapar ni helt enkelt en fil med hookens namn (till exempel pre-commit) i katalogen .git/hooks/. Låt oss skapa en mycket enkel:

#!/bin/sh

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

Gör hookar körbara

När ni har skapat hookskriptet måste ni göra det körbart. Annars kör Git det inte. Använd kommandot chmod i terminalen:

chmod +x .git/hooks/pre-commit

Nu kör Git det här skriptet varje gång ni försöker göra en commit!

Snabbkontroll: När körs hookar?

Git-hookar körs vid specifika tidpunkter i ert arbetsflöde. För att kunna använda dem effektivt är det viktigt att förstå när de körs.

Sammanfattning: Förstå Git-hookar

Ni har tagit det första steget in i Git-hookarnas kraftfulla värld!

  • Git-hookar är skript som automatiserar åtgärder vid Git-händelser.
  • De finns i katalogen .git/hooks/ i ert arkiv.
  • Hookar är antingen klientsidiga (på den lokala datorn) eller serversidiga (i fjärrarkivet).
  • Viktiga hookar som pre-commit och pre-receive kan upprätthålla regler genom att blockera åtgärder.
  • Hookar som post-commit och post-receive används för aviseringar eller integreringar efter en åtgärd.

Härnäst ska vi gå igenom praktiska exempel på hur specifika hookar implementeras!

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Förstå Git Hooks” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Förstå Git Hooks”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Förstå Git Hooks”?

Utforska olika typer av Git Hooks och när de körs i Git-workflowen. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Förstå Git Hooks”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Förstå Git Hooks
  2. Pre-commit- och post-merge-hooks
  3. Anpassa Git-konfigurationen
  4. Dela hooks med Husky
← Tillbaka till DevOps-bootcamp