Professionelt Git- og GitHub-arbejdsforløb · Lektion

Forstå Git-hooks

Udforsk de forskellige typer Git-hooks og deres kørselspunkter i Git-workflowet.

Lektion 1 af 412 trin

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 0

Gø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-commit og pre-receive kan håndhæve politikker ved at blokere handlinger.
  • Hooks som post-commit og post-receive bruges til notifikationer eller integrationer efter en handling.

Nu dykker vi ned i praktiske eksempler på bestemte hooks!

Gratis at komme i gang

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.

Alle lektioner i dette kursus

  1. Forstå Git-hooks
  2. Pre-commit- og post-merge-hooks
  3. Tilpasning af Git-konfiguration
  4. Del hooks med Husky
← Tilbage til Professionelt Git- og GitHub-arbejdsforløb