Förstå Git Hooks
Utforska olika typer av Git Hooks och när de körs i Git-workflowen.
Förstå Git Hooks är en gratis lektion i Professionellt arbetsflöde med Git och GitHub på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Professionellt arbetsflöde med Git och GitHub, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Professionellt arbetsflöde med Git och GitHub 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 0Gö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-commitochpre-receivekan upprätthålla regler genom att blockera åtgärder. - Hookar som
post-commitochpost-receiveanvänds för aviseringar eller integreringar efter en åtgärd.
Härnäst ska vi gå igenom praktiska exempel på hur specifika hookar implementeras!
Lär dig Professionellt arbetsflöde med Git och GitHub 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
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Förstå Git Hooks” gratis?
Ja – hela texten till ”Förstå Git Hooks” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Professionellt arbetsflöde med Git och GitHub, kan Ni uppgradera till CoddyKit PRO. Kursen i Professionellt arbetsflöde med Git och GitHub 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å Professionellt arbetsflöde med Git och GitHub 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 Professionellt arbetsflöde med Git och GitHub?
Du behöver inga förkunskaper. Utbildningen i Professionellt arbetsflöde med Git och GitHub 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 Professionellt arbetsflöde med Git och GitHub-lektionen?
Ja. Varje Professionellt arbetsflöde med Git och GitHub-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.