Forstå Git-hooks
Udforsk de forskellige typer Git-hooks og deres kørselspunkter i Git-workflowet.
Forstå Git-hooks er en gratis Professionelt Git- og GitHub-arbejdsforløb-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Professionelt Git- og GitHub-arbejdsforløb, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Professionelt Git- og GitHub-arbejdsforløb-kurset indeholder 4 lektioner i alt.
Hvad er Git Hooks?
Velkommen til Git Hooks! Git Hooks er kraftfulde scripts, som kan tilpasses, og som Git udfører automatisk før eller efter hændelser som commit, push eller modtagelse af pushede commits.
Tænk på dem som automatiserede kontrolpunkter eller handlinger i dit Git-workflow. De hjælper med at håndhæve projektstandarder, automatisere opgaver og integrere med andre systemer.
Hvor findes hooks?
Alle Git-lagre indeholder en mappe med navnet .git/hooks. Her finder du eksempler på hookscripts (som regel med endelsen .sample).
Hvis du vil aktivere et hook, skal du blot fjerne endelsen .sample og gøre filen eksekverbar. Git kører det derefter på det relevante tidspunkt.
- Placering:
.git/hooks/ - Filer: Shell-scripts (Bash, Python, Ruby osv.)
- Aktivering: Omdøb og gør eksekverbar
Klient-side kontra server-side
Git Hooks inddeles i to hovedtyper baseret på, hvor de kører:
- Klient-side-hooks: Kører på din lokale maskine (for eksempel før du laver en commit eller rebase). De bruges til automatisering af din personlige arbejdsgang og håndhævelse af lokale regler.
- Server-side-hooks: Kører på den eksterne Git-server (for eksempel når du pusher kode til et delt lager). De håndhæver projektdækkende regler for alle.
Klient-hook: pre-commit
Hooket pre-commit er et af de mest almindelige klient-side-hooks. Det kører *før* Git officielt opretter en commit.
Hvis scriptet pre-commit afsluttes med en status, der ikke er nul, afbryder Git committen. Det er perfekt til opgaver som:
- Linting af kode (kontrol for stilfejl)
- Kørsel af enhedstests
- Kontrol for store filer eller følsomme data
Klient-hook: commit-msg
Hooket commit-msg kører *efter* at du har indtastet din commitbesked, men *før* committen færdiggøres.
Dette hook er nyttigt til at sikre, at dine commitbeskeder følger bestemte konventioner eller formater. Det kan for eksempel kontrollere, om:
- Beskeden begynder med et sags-id (for eksempel
[JIRA-123]) - Beskedens længde er inden for grænserne
- Bestemte nøgleord findes eller ikke findes
Klient-hook: post-commit
Hooket post-commit kører *umiddelbart efter* at en commit er blevet oprettet.
I modsætning til pre-commit eller commit-msg kan dette hook ikke ændre resultatet af committen. Det bruges ofte til notifikationer eller integrationer, for eksempel:
- At underrette teammedlemmer
- At opdatere et projektstyringsværktøj
- At udløse et continuous integration-build (CI-build) (selvom dette er mere almindeligt med server-side-hooks)
Serverhook: pre-receive
På serversiden udføres pre-receive *før* nogen referencer (såsom grene eller tags) opdateres i fjernlageret.
Denne hook er nyttig til at håndhæve vigtige politikker for lageret, f.eks.:
- Forhindre direkte push til grenen
main - Sikre, at alle commits er signerede
- Validere committerens identitet
Hvis denne hook afsluttes med en status, der ikke er nul, afvises hele push-handlingen.
Serverhook: post-receive
Hooken post-receive køres *efter*, at et push har opdateret referencerne i fjernlageret.
Ligesom post-commit kan denne hook ikke afvise push-handlingen. Den bruges ofte til:
- Udløse CI/CD-pipelines
- Opdatere eksterne systemer til problemsporing
- Sende e-mailnotifikationer til teamet
- Udrulle kode til et testmiljø
Opret en simpel hook
For at oprette en hook skal du blot oprette en fil med hookens navn (f.eks. pre-commit) i mappen .git/hooks/. Lad os lave en helt enkel:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Gør hooks eksekverbare
Når du har oprettet dit hook-script, skal du gøre det eksekverbart. Ellers kører Git det ikke. Brug kommandoen chmod i din terminal:
chmod +x .git/hooks/pre-commit
Nu kører Git dette script, hver gang du forsøger at lave et commit!
Hurtigt tjek: Hookens tidspunkt
Git-hooks kører på bestemte tidspunkter i din arbejdsgang. Det er afgørende at forstå deres timing for at bruge dem effektivt.
Opsummering: Forstå Git-hooks
Du har taget det første skridt ind i den effektive verden af Git-hooks!
- Git-hooks er scripts, der automatiserer handlinger under Git-hændelser.
- De ligger i mappen
.git/hooks/i dit lager. - Hooks er enten på klientsiden (den lokale maskine) eller på serversiden (fjernlageret).
- Vigtige hooks som
pre-commitogpre-receivekan håndhæve politikker ved at blokere handlinger. - Hooks som
post-commitogpost-receivebruges til notifikationer eller integrationer efter en handling.
Nu dykker vi ned i praktiske eksempler på bestemte hooks!
Lær Professionelt Git- og GitHub-arbejdsforløb med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Forstå Git-hooks” gratis?
Ja — hele teksten til “Forstå Git-hooks” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Professionelt Git- og GitHub-arbejdsforløb-kurset, skal du opgradere til CoddyKit PRO. Professionelt Git- og GitHub-arbejdsforløb-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Forstå Git-hooks”?
Udforsk de forskellige typer Git-hooks og deres kørselspunkter i Git-workflowet. Du øver dig i Professionelt Git- og GitHub-arbejdsforløb med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Professionelt Git- og GitHub-arbejdsforløb?
Der kræves ingen tidligere erfaring. Professionelt Git- og GitHub-arbejdsforløb på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Forstå Git-hooks”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Professionelt Git- og GitHub-arbejdsforløb-lektion?
Ja. Alle Professionelt Git- og GitHub-arbejdsforløb-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.