Pre-commit- ja post-merge-hookit
Toteuttakaa käytännön esimerkkejä pre-commit-hookeista lintingiin ja post-merge-hookeista ilmoituksiin.
Pre-commit- ja post-merge-hookit on ilmainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Git- ja GitHub-ammattilaisen työnkulku-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Git- ja GitHub-ammattilaisen työnkulku-kurssilla on yhteensä 4 oppituntia.
Käytännön johdanto Git-hookeihin
Edellisessä oppitunnissa opimme Git-hookeista ja niiden eri tyypeistä. Nyt siirrytään käytäntöön!
Tutustumme kahden tehokkaan hookin, pre-commit ja post-merge, toteuttamiseen. Niiden avulla voitte automatisoida tarkistuksia ennen committia ja toimintoja mergen jälkeen.
Pre-commit: laadunvalvontaportti
pre-commit-hook suoritetaan ennen commit-toimintoa, mutta sen jälkeen, kun muutokset on lisätty valmistelualueelle komennolla git add.
- Se sopii erinomaisesti koodin laadun ja tyylin valvontaan.
- Sen avulla voidaan suorittaa lintereitä, tyylintarkistimia tai jopa yksinkertaisia yksikkötestejä.
- Jos komentosarja päättyy nollasta poikkeavaan tilaan, commit keskeytetään automaattisesti.
Näin varmistetaan, että repositorioon päätyy vain laadukasta ja vaatimusten mukaista koodia.
Pre-commit-hookin määrittäminen
pre-commit-hook luodaan luomalla projektin hakemistoon .git/hooks/ suoritettava tiedosto nimeltä pre-commit.
Git tarjoaa esimerkkihookeja, joiden tiedostopääte on .sample. Poistakaa tämä pääte ja lisätkää oma komentosarjanne.
Muistakaa määrittää tiedosto suoritettavaksi komennolla: chmod +x .git/hooks/pre-commit
Esimerkki: TODO-commitien estäminen
Luodaan yksinkertainen pre-commit-hook, joka estää vielä sanan "TODO" sisältävien tiedostojen commitoimisen. Tämä on yleinen käytäntö, jolla varmistetaan, etteivät keskeneräiset tehtävät päädy koodikantaan.
Komentosarja tarkistaa tämän avainsanan kaikista valmistelluista tiedostoista. Jos sana löytyy, commit keskeytetään.
Pre-commit-hook: ei TODOja!
Tässä on yksinkertainen shell-komentosarja tiedostoa .git/hooks/pre-commit varten. Se tarkistaa sanan "TODO" valmistelluista .txt-tiedostoista.
Vaiheet:
- Luo
.git/hooks/pre-commit - Liitä tämä koodi
- Suorita
chmod +x .git/hooks/pre-commit
#!/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 0Pre-commit-hookin testaaminen
Testaa hook luomalla ensin tiedosto, esimerkiksi test.txt, ja lisäämällä siihen "TODO: Finish this". Yritä sitten commitoida se:
git add test.txtgit commit -m "Add test file"
Commitin pitäisi keskeytyä, ja näet hookin virheilmoituksen. Poista "TODO" tiedostosta test.txt, niin commit onnistuu!
Post-merge: automatisoi mergen jälkeiset toiminnot
post-merge-hook suoritetaan automaattisesti, kun git merge -komento on suoritettu onnistuneesti.
- Se on hyödyllinen integraatiotehtävissä, jotka tulee suorittaa koodin yhdistämisen jälkeen.
- Esimerkkejä ovat tiimin jäsenten ilmoittaminen, projektin riippuvuuksien päivittäminen (esimerkiksi
npm install) tai koontikomentosarjan suorittaminen. - Toisin kuin pre-commit, tämä hook ei vaikuta mergen lopputulokseen.
Se on erinomainen tapa automatisoida mergen jälkeisiä prosesseja.
Post-merge-hookin määrittäminen
pre-commit-hookin tapaan luodaan hakemistoon .git/hooks/ tiedosto nimeltä post-merge.
Varmistakaa jälleen, että tiedosto on suoritettava:
chmod +x .git/hooks/post-merge
Tämä komentosarja suoritetaan aina, kun repositoriossa suoritettu merge valmistuu.
Esimerkki: ilmoitus mergen valmistumisesta
Luodaan post-merge-hook, joka tulostaa konsoliin viestin merkiksi juuri tapahtuneesta mergestä. Todellisessa tilanteessa se voisi käynnistää CI/CD-putken tai lähettää ilmoituksen chat-sovellukseen.
Post-merge-hook: ilmoitus
Tässä on yksinkertainen shell-komentosarja tiedostoa .git/hooks/post-merge varten. Se tulostaa vahvistusviestin.
Vaiheet:
- Luo
.git/hooks/post-merge - Liitä tämä koodi
- Suorita
chmod +x .git/hooks/post-merge
#!/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 0Hook-tarkistus: pre-commit vai post-merge
Mikä seuraavista tehtävistä kuuluisi yleensä pre-commit-hookille?
Kertaus: hookit käytännössä
Hienoa työtä! Tässä oppitunnissa opitte toteuttamaan käytännön Git-hookeja.
- Pre-commit-hookit toimivat laadunvalvontaporttina ja suorittavat esimerkiksi linttauksen tai testauksen *ennen* committia.
- Post-merge-hookit automatisoivat mergen *jälkeisiä* toimintoja, kuten ilmoituksia tai riippuvuuksien päivityksiä.
Nämä hookit ovat tehokkaita työkaluja standardien valvontaan ja työnkulkujen automatisointiin Git-repositoriossa. Tutustukaa myös muihin hook-tyyppeihin, jotta voitte mukauttaa Git-kokemustanne entisestään!
Opi Git- ja GitHub-ammattilaisen työnkulku tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Pre-commit- ja post-merge-hookit” ilmainen?
Kyllä – oppitunnin ”Pre-commit- ja post-merge-hookit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Git- ja GitHub-ammattilaisen työnkulku-kurssin, päivitä CoddyKit PROhon. Git- ja GitHub-ammattilaisen työnkulku-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Pre-commit- ja post-merge-hookit”?
Toteuttakaa käytännön esimerkkejä pre-commit-hookeista lintingiin ja post-merge-hookeista ilmoituksiin. Harjoittelet Git- ja GitHub-ammattilaisen työnkulku-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Git- ja GitHub-ammattilaisen työnkulku-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Git- ja GitHub-ammattilaisen työnkulku-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Pre-commit- ja post-merge-hookit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Git- ja GitHub-ammattilaisen työnkulku-oppitunnilla?
Kyllä. Jokainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Git-hookien ymmärtäminen
- Pre-commit- ja post-merge-hookit
- Gitin määritysten mukauttaminen
- Hookien jakaminen Huskylla