Professionele Git- en GitHub-werkwijze · Les

Pre-commit- en post-merge-hooks

Implementeer praktische voorbeelden van pre-commit-hooks voor linting en post-merge-hooks voor meldingen.

Les 2 van 412 stappen

Pre-commit- en post-merge-hooks is een gratis Professionele Git- en GitHub-werkwijze-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Professionele Git- en GitHub-werkwijze. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Professionele Git- en GitHub-werkwijze bevat in totaal 4 lessen.

Inleiding tot praktische Git-hooks

In de vorige les hebben we Git-hooks en hun verschillende typen besproken. Nu gaan we praktisch aan de slag!

We gaan twee krachtige hooks implementeren: pre-commit en post-merge. Hiermee kunt u controles vóór een commit en acties na een merge automatiseren.

Pre-commit: uw kwaliteitscontrole

De hook pre-commit wordt vóór een commitbewerking uitgevoerd, maar nadat u git add hebt gebruikt om uw wijzigingen klaar te zetten.

  • Deze hook is ideaal voor het afdwingen van codekwaliteit en stijl.
  • U kunt hem gebruiken om linters, stijlcontroles of zelfs eenvoudige unittests uit te voeren.
  • Als het script eindigt met een status die niet nul is, wordt de commit automatisch afgebroken.

Zo zorgt u ervoor dat alleen hoogwaardige code die aan de regels voldoet in uw repository terechtkomt.

De pre-commit-hook instellen

Om een pre-commit-hook te maken, moet u een uitvoerbaar bestand met de naam pre-commit maken in de map .git/hooks/ van uw project.

Git levert voorbeeldhooks met de extensie .sample. Verwijder die extensie en voeg uw aangepaste script toe.

Vergeet niet het bestand uitvoerbaar te maken met: chmod +x .git/hooks/pre-commit

Voorbeeld: commits met TODO voorkomen

Laten we een eenvoudige pre-commit-hook maken die voorkomt dat u bestanden commit waarin het woord "TODO" nog voorkomt. Dit is een gebruikelijke manier om ervoor te zorgen dat er geen onvoltooide taken in uw codebase terechtkomen.

Het script controleert alle klaargezette bestanden op dit trefwoord. Als het wordt gevonden, stopt het de commit.

Pre-commit-hook: geen TODO's!

Hier is een eenvoudig shellscript voor uw bestand .git/hooks/pre-commit. Het controleert klaargezette .txt-bestanden op het woord "TODO".

Stappen:

  1. Maak .git/hooks/pre-commit
  2. Plak deze code
  3. Voer chmod +x .git/hooks/pre-commit uit
#!/bin/sh

# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
  if grep -q "TODO" "$file"; then
    echo "ERROR: Found 'TODO' in staged file: $file"
    echo "Please remove TODOs before committing."
    exit 1
  fi
done

exit 0

Uw pre-commit-hook testen

Maak eerst een bestand, bijvoorbeeld test.txt, en voeg "TODO: Finish this" eraan toe om deze hook te testen. Probeer het bestand daarna te committen:

git add test.txt
git commit -m "Add test file"

De commit moet worden afgebroken en u ziet de foutmelding van uw hook. Verwijder "TODO" uit test.txt en de commit wordt uitgevoerd!

Post-merge: acties na merges automatiseren

De hook post-merge wordt automatisch uitgevoerd nadat een opdracht git merge succesvol is voltooid.

  • Deze hook is nuttig voor integratietaken die moeten plaatsvinden nadat code is samengevoegd.
  • Voorbeelden zijn teamleden op de hoogte brengen, projectafhankelijkheden bijwerken, bijvoorbeeld met npm install, of een buildscript uitvoeren.
  • In tegenstelling tot pre-commit heeft deze hook geen invloed op de uitkomst van de merge.

Dit is een uitstekende manier om processen na een merge te automatiseren.

De post-merge-hook instellen

Net als bij pre-commit maakt u een bestand met de naam post-merge in de map .git/hooks/.

Controleer opnieuw of het een uitvoerbaar bestand is:

chmod +x .git/hooks/post-merge

Dit script wordt vervolgens elke keer uitgevoerd wanneer een merge in uw repository is voltooid.

Voorbeeld: melding bij voltooide merge

Laten we een post-merge-hook maken die eenvoudig een bericht naar de console afdrukt om te bevestigen dat er zojuist een merge heeft plaatsgevonden. In de praktijk kan hiermee een CI/CD-pijplijn worden gestart of een melding naar een chattoepassing worden verstuurd.

Post-merge-hook: melding

Hier is een eenvoudig shellscript voor uw bestand .git/hooks/post-merge. Het drukt een bevestigingsbericht af.

Stappen:

  1. Maak .git/hooks/post-merge
  2. Plak deze code
  3. Voer chmod +x .git/hooks/post-merge uit
#!/bin/sh

# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"

exit 0

Hookcontrole: pre-commit versus post-merge

Welke van de volgende taken wordt doorgaans uitgevoerd door een pre-commit-hook?

Samenvatting: hooks in actie

Goed gedaan! In deze les hebt u geleerd praktische Git-hooks te implementeren.

  • Pre-commit-hooks fungeren als kwaliteitscontrole en voeren controles uit, zoals linting of tests, vóór een commit.
  • Post-merge-hooks automatiseren acties na een merge, zoals meldingen of het bijwerken van afhankelijkheden.

Deze hooks zijn krachtige hulpmiddelen om standaarden af te dwingen en werkstromen in uw Git-repository te automatiseren. Verken ook andere hooktypen om uw Git-ervaring verder aan te passen!

Gratis beginnen

Leer Professionele Git- en GitHub-werkwijze met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Pre-commit- en post-merge-hooks” gratis?

Ja — de volledige tekst van “Pre-commit- en post-merge-hooks” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Professionele Git- en GitHub-werkwijze wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Professionele Git- en GitHub-werkwijze bevat in totaal 4 lessen.

Wat leer ik in “Pre-commit- en post-merge-hooks”?

Implementeer praktische voorbeelden van pre-commit-hooks voor linting en post-merge-hooks voor meldingen. Je oefent met Professionele Git- en GitHub-werkwijze door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Professionele Git- en GitHub-werkwijze te beginnen?

Ervaring vooraf is niet nodig. Professionele Git- en GitHub-werkwijze op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Pre-commit- en post-merge-hooks”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Professionele Git- en GitHub-werkwijze?

Ja. Elke les over Professionele Git- en GitHub-werkwijze bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Git Hooks begrijpen
  2. Pre-commit- en post-merge-hooks
  3. Git-configuratie aanpassen
  4. Hooks delen met Husky
← Terug naar Professionele Git- en GitHub-werkwijze