Git- ja GitHub-ammattilaisen työnkulku · Oppitunti

Git-hookien ymmärtäminen

Tutustukaa Git-hookien eri tyyppeihin ja niiden suorituskohtiin Git-työnkulussa.

Oppitunti 1/412 vaihetta

Git-hookien ymmärtäminen on ilmainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.

Mitä Git-hookit ovat?

Tervetuloa tutustumaan Git-hookeihin! Git-hookit ovat tehokkaita ja mukautettavia skriptejä, jotka Git suorittaa automaattisesti ennen commitin tekemisen, pushauksen tai pushattujen commitien vastaanottamisen kaltaisia tapahtumia tai niiden jälkeen.

Ajatelkaa niitä Git-työnkulun automaattisina tarkistuspisteinä tai toimintoina. Niiden avulla voitte valvoa projektin standardeja, automatisoida tehtäviä ja integroida muita järjestelmiä.

Missä hookit sijaitsevat

Jokaisen Git-repositorion mukana tulee hakemisto .git/hooks. Sen sisältä löydätte esimerkkihakuskriptejä, joiden tiedostopääte on yleensä .sample.

Aktivoidaksenne hookin poistakaa tiedostonimestä .sample-pääte ja tehkää tiedostosta suoritettava. Tämän jälkeen Git suorittaa sen oikealla hetkellä.

  • Sijainti: .git/hooks/
  • Tiedostot: Shell-skriptejä (Bash, Python, Ruby jne.)
  • Aktivointi: Nimetkää uudelleen ja tehkää suoritettavaksi

Asiakaspuolen ja palvelinpuolen hookit

Git-hookit jaetaan kahteen päätyyppiin sen perusteella, missä ne suoritetaan:

  • Asiakaspuolen hookit: Suoritetaan paikallisella koneellanne (esimerkiksi ennen committia tai rebasea). Niitä käytetään henkilökohtaisen työnkulun automatisointiin ja paikallisten käytäntöjen valvontaan.
  • Palvelinpuolen hookit: Suoritetaan etä-Git-palvelimella (esimerkiksi kun pushaatte koodia jaettuun repositorioon). Niillä valvotaan koko projektia koskevia käytäntöjä kaikkien osalta.

Asiakaspuolen hook: pre-commit

pre-commit-hook on yksi yleisimmistä asiakaspuolen hookeista. Se suoritetaan *ennen kuin* Git luo commitin virallisesti.

Jos pre-commit-skripti päättyy nollasta poikkeavaan tilakoodiin, Git keskeyttää commitin. Se sopii erinomaisesti esimerkiksi seuraaviin tehtäviin:

  • Koodin linttaus (tyylivirheiden tarkistaminen)
  • Yksikkötestien suorittaminen
  • Suurten tiedostojen tai arkaluonteisten tietojen tarkistaminen

Asiakaspuolen hook: commit-msg

commit-msg-hook suoritetaan *sen jälkeen, kun* olette kirjoittaneet commit-viestin, mutta *ennen kuin* commit viimeistellään.

Tämä hook on hyödyllinen, kun haluatte varmistaa commit-viestien noudattavan tiettyjä käytäntöjä tai muotoja. Se voi esimerkiksi tarkistaa:

  • Alkaako viesti tiketin tunnisteella (esimerkiksi [JIRA-123])
  • Onko viestin pituus sallituissa rajoissa
  • Ovatko tietyt avainsanat mukana tai puuttuvat

Asiakaspuolen hook: post-commit

post-commit-hook suoritetaan *välittömästi sen jälkeen*, kun commit on luotu onnistuneesti.

Toisin kuin pre-commit- tai commit-msg-hook, tämä hook ei voi muuttaa commitin lopputulosta. Sitä käytetään usein ilmoituksiin tai integraatioihin, kuten seuraaviin:

  • Tiimin jäsenten ilmoittaminen
  • Projektinhallintatyökalun päivittäminen
  • Jatkuvan integraation (CI) koontiversion käynnistäminen (vaikka tämä onkin yleisempää palvelinpuolen hookeilla)

Palvelinpuolen hook: pre-receive

Palvelinpuolen hookeihin siirryttäessä pre-receive suoritetaan *ennen* kuin etärepositorion viitteitä, kuten haaroja tai tageja, päivitetään.

Tämä hook on tehokas tapa valvoa reposito­riolle tärkeitä käytäntöjä, kuten:

  • Estetään suorat pushaukset main-haaraan
  • Varmistetaan, että kaikki commitit on allekirjoitettu
  • Varmennetaan commitoijan henkilöllisyys

Jos tämä hook päättyy nollasta poikkeavaan paluuarvoon, koko push hylätään.

Palvelinpuolen hook: post-receive

post-receive-hook suoritetaan *sen jälkeen*, kun push on onnistuneesti päivittänyt etärepositorion viitteet.

post-commit-hookin tapaan tämä hook ei voi hylätä pushia. Sitä käytetään tavallisesti seuraaviin tarkoituksiin:

  • CI/CD-putkien käynnistäminen
  • Ulkoisten issue-seurantojen päivittäminen
  • Sähköposti-ilmoitusten lähettäminen tiimille
  • Koodin julkaiseminen staging-ympäristöön

Yksinkertaisen hookin luominen

Hook luodaan yksinkertaisesti luomalla hookin niminen tiedosto, esimerkiksi pre-commit, hakemistoon .git/hooks/. Tehdään hyvin yksinkertainen hook:

#!/bin/sh

# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0

Hookien määrittäminen suoritettaviksi

Kun hook-komentosarja on luotu, se on määritettävä suoritettavaksi. Muuten Git ei suorita sitä. Käyttäkää päätteen chmod-komentoa:

chmod +x .git/hooks/pre-commit

Nyt Git suorittaa tämän komentosarjan joka kerta, kun yritätte tehdä commitin!

Pikatarkistus: hookien ajoitus

Git-hookit suoritetaan työnkulun tietyissä vaiheissa. Niiden ajoituksen ymmärtäminen on olennaista, jotta niitä voidaan käyttää tehokkaasti.

Kertaus: Git-hookien ymmärtäminen

Olette ottaneet ensimmäisen askeleen Git-hookien tehokkaaseen maailmaan!

  • Git-hookit ovat komentosarjoja, jotka automatisoivat toimintoja Git-tapahtumien aikana.
  • Ne sijaitsevat repositorion hakemistossa .git/hooks/.
  • Hookit ovat joko asiakaspuolen (paikallisella koneella) tai palvelinpuolen (etärepositoriossa) hookeja.
  • Keskeiset hookit, kuten pre-commit ja pre-receive, voivat valvoa käytäntöjä estämällä toimintoja.
  • post-commit- ja post-receive-hookeja käytetään toiminnon jälkeisiin ilmoituksiin tai integraatioihin.

Seuraavaksi tutustumme tiettyjen hookien käytännön toteutuksiin!

Aloita maksutta

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 ”Git-hookien ymmärtäminen” ilmainen?

Kyllä – oppitunnin ”Git-hookien ymmärtäminen” 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 ”Git-hookien ymmärtäminen”?

Tutustukaa Git-hookien eri tyyppeihin ja niiden suorituskohtiin Git-työnkulussa. 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 1/4.

Kuinka kauan ”Git-hookien ymmärtäminen”-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

  1. Git-hookien ymmärtäminen
  2. Pre-commit- ja post-merge-hookit
  3. Gitin määritysten mukauttaminen
  4. Hookien jakaminen Huskylla
← Takaisin: Git- ja GitHub-ammattilaisen työnkulku