Git- ja GitHub-ammattilaisen työnkulku · Oppitunti

Pre-commit- ja post-merge-hookit

Toteuttakaa käytännön esimerkkejä pre-commit-hookeista lintingiin ja post-merge-hookeista ilmoituksiin.

Oppitunti 2/412 vaihetta

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:

  1. Luo .git/hooks/pre-commit
  2. Liitä tämä koodi
  3. 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 0

Pre-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.txt
git 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:

  1. Luo .git/hooks/post-merge
  2. Liitä tämä koodi
  3. 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 0

Hook-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!

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 ”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

  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