Forstå Git hooks
Utforsk de ulike typene Git hooks og når de kjøres i Git-arbeidsflyten.
Forstå Git hooks er en gratis leksjon i Profesjonell arbeidsflyt med Git og GitHub på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Profesjonell arbeidsflyt med Git og GitHub, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Hva er Git Hooks?
Velkommen til Git Hooks! Git Hooks er kraftige, tilpassbare skript som Git kjører automatisk før eller etter hendelser som commit, push eller mottak av pushede commiter.
Tenk på dem som automatiserte kontrollpunkter eller handlinger i Git-arbeidsflyten Deres. De bidrar til å håndheve prosjektstandarder, automatisere oppgaver og integrere med andre systemer.
Hvor hooks ligger
Alle Git-repositorier har en .git/hooks-katalog. Der finner De eksempler på hook-skript (som vanligvis slutter med .sample).
For å aktivere en hook fjerner De ganske enkelt utvidelsen .sample og gjør filen kjørbar. Git kjører den da på riktig tidspunkt.
- Plassering:
.git/hooks/ - Filer: Shell-skript (Bash, Python, Ruby osv.)
- Aktivering: Gi filen nytt navn og gjør den kjørbar
Klient-side kontra server-side
Git Hooks deles inn i to hovedtyper basert på hvor de kjører:
- Klient-side-hooks: Kjører på den lokale maskinen Deres (for eksempel før De gjør commit eller rebase). De brukes til automatisering av personlig arbeidsflyt og håndheving av lokale regler.
- Server-side-hooks: Kjører på den eksterne Git-serveren (for eksempel når De pusher kode til et delt repositorium). De håndhever prosjektomfattende regler for alle.
Klient-hook: pre-commit
Hooken pre-commit er en av de vanligste klient-side-hookene. Den kjører *før* Git offisielt oppretter en commit.
Hvis pre-commit-skriptet avsluttes med en status som ikke er null, avbryter Git commiten. Dette passer perfekt til oppgaver som:
- Linting av kode (kontroll av stilfeil)
- Kjøring av enhetstester
- Kontroll etter store filer eller sensitive data
Klient-hook: commit-msg
Hooken commit-msg kjører *etter* at De har skrevet inn commit-meldingen, men *før* commiten fullføres.
Denne hooken er nyttig for å sikre at commit-meldinger følger bestemte konvensjoner eller formater. Den kan for eksempel kontrollere om:
- Meldingen begynner med en ticket-ID (for eksempel
[JIRA-123]) - Meldingslengden er innenfor grensene
- Bestemte nøkkelord finnes eller ikke finnes
Klient-hook: post-commit
Hooken post-commit kjører *umiddelbart etter* at en commit er opprettet.
I motsetning til pre-commit eller commit-msg kan denne hooken ikke endre resultatet av commiten. Den brukes ofte til varsler eller integrasjoner, for eksempel:
- Varsle teammedlemmer
- Oppdatere et prosjektstyringsverktøy
- Utløse et CI-bygg (selv om dette er vanligere med server-side-hooks)
Server-hook: pre-receive
På serversiden kjøres pre-receive *før* noen referanser (som grener eller tagger) oppdateres i det eksterne repositoriet.
Denne hooken er nyttig for å håndheve viktige regler for repositoriet, for eksempel:
- Hindre direkte push til grenen
main - Sikre at alle commits er signert
- Validere identiteten til den som oppretter commiten
Hvis denne hooken avsluttes med en status ulik null, blir hele push-operasjonen avvist.
Server-hook: post-receive
Hooken post-receive kjører *etter* at en push-operasjon har oppdatert referansene i det eksterne repositoriet.
I likhet med post-commit kan ikke denne hooken avvise push-operasjonen. Den brukes ofte til:
- Utløse CI/CD-pipelines
- Oppdatere eksterne sakssystemer
- Sende e-postvarsler til teamet
- Distribuere kode til et stagingmiljø
Opprette en enkel hook
For å opprette en hook lager du ganske enkelt en fil med navnet til hooken (for eksempel pre-commit) i katalogen .git/hooks/. La oss lage en helt enkel hook:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Gjøre hooker kjørbare
Når du har opprettet hook-skriptet, må du gjøre det kjørbart. Git kjører det ellers ikke. Bruk kommandoen chmod i terminalen:
chmod +x .git/hooks/pre-commit
Nå kjører Git dette skriptet hver gang du prøver å opprette en commit!
Kort sjekk: Tidspunkt for hooker
Git-hooker kjører på bestemte tidspunkter i arbeidsflyten din. Det er viktig å forstå når de kjører, slik at du kan bruke dem effektivt.
Oppsummering: Forstå Git-hooker
Du har tatt det første steget inn i den kraftige verdenen av Git-hooker!
- Git-hooker er skript som automatiserer handlinger under Git-hendelser.
- De ligger i katalogen
.git/hooks/i repositoriet ditt. - Hooker er enten klientside (på den lokale maskinen) eller serverside (i det eksterne repositoriet).
- Viktige hooker som
pre-commitogpre-receivekan håndheve regler ved å blokkere operasjoner. - Hooker som
post-commitogpost-receivebrukes til varsler eller integrasjoner etter at en handling er utført.
Deretter skal vi se nærmere på praktiske eksempler på bestemte hooker!
Lær deg Profesjonell arbeidsflyt med Git og GitHub med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Forstå Git hooks» gratis?
Ja – hele teksten i «Forstå Git hooks» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Profesjonell arbeidsflyt med Git og GitHub-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Hva lærer jeg i «Forstå Git hooks»?
Utforsk de ulike typene Git hooks og når de kjøres i Git-arbeidsflyten. Du øver på Profesjonell arbeidsflyt med Git og GitHub med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Profesjonell arbeidsflyt med Git og GitHub?
Ingen tidligere erfaring er nødvendig. Profesjonell arbeidsflyt med Git og GitHub på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Forstå Git hooks»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Profesjonell arbeidsflyt med Git og GitHub-leksjonen?
Ja. Alle Profesjonell arbeidsflyt med Git og GitHub-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.