Repositorion ylläpito ja siistiminen
Oppikaa käyttämään komentoja, kuten `git gc` ja `git prune`, paikallisen Git-repositorion siistimiseen ja optimointiin.
Repositorion ylläpito ja siistiminen on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Tervetuloa Gitin ylläpitoon
Ajan mittaan paikallisiin Git-repositorioihin voi kertyä tarpeettomia tiedostoja ja niiden tehokkuus voi heikentyä. Ajattele asiaa sotkuisena huoneena!
Tässä oppitunnissa opit siivoamaan ja optimoimaan Git-repositorioita tehokkailla komennoilla, kuten git gc ja git prune. Näin projektisi toimivat sujuvasti.
Gitin objektivarasto selitettynä
Ymmärretään ensin, miten Git tallentaa tietoja. Git tallentaa projektisi historian objektien sarjana:
- Blobs: Tiedostojen sisältö
- Trees: Hakemistot ja niiden sisältö
- Commits: Projektin tilannekuvat tietyllä hetkellä
- Tags: Tiettyihin committeihin osoittavat viitteet
Nämä objektit voidaan tallentaa irrallisina objekteina tai pakata tehokkuuden parantamiseksi packfile-tiedostoihin.
`git gc` -komennon esittely (Garbage Collect)
git gc tarkoittaa ”garbage collect” eli roskien keräämistä. Se on Gitin sisäänrakennettu työkalu repositorion siivoamiseen ja optimointiin.
Sen tärkeimpiä tehtäviä ovat:
- Irrallisten objektien pakkaaminen: Yksittäisten objektien pakkaaminen yhteen packfile-tiedostoon.
- Saavuttamattomien objektien karsiminen: Sellaisten objektien poistaminen, joihin mikään commit, haara tai tagi ei enää viittaa (tietyn ajan kuluttua).
- Vanhojen packfile-tiedostojen poistaminen: Vanhentuneiden pakattujen objektitiedostojen poistaminen.
Tämä prosessi pienentää repositoriota ja nopeuttaa sen toimintaa.
`git gc` -komennon suorittaminen (yleinen käyttö)
Voit suorittaa komennon git gc manuaalisesti milloin tahansa. Git suorittaa sen myös automaattisesti taustalla tiettyjen toimintojen, kuten pushin tai fetchin, yhteydessä.
Komennon suorittaminen on yleensä turvallista, mutta on hyvä varmistaa, ettei sinulla ole palautettavaksi mahdollisesti tarvittavia commitoimattomia muutoksia ennen suurta siivousta.
Kokeile suorittaa komento päätteessä:
git gc`git gc` -komennon tulosteen ymmärtäminen
Kun suoritat komennon git gc, näet jotakin tämän kaltaista:
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Tämä osoittaa, että Git pakkaa objekteja, kirjoittaa uusia packfile-tiedostoja ja karsii eli poistaa vanhoja, saavuttamattomia objekteja. Numerot vaihtelevat repositoriosi tilan mukaan.
Keskity komentoon `git prune`
Vaikka git gc hoitaa monia puhdistustehtäviä, git prune keskittyy erityisesti ”irtonaisten” (dangling) tai ”saavuttamattomien” (unreachable) objektien poistamiseen.
- Irtonaiset objektit: Nämä ovat repositoriossasi olevia objekteja, joihin mikään commit, haara tai tagi ei enää viittaa eivätkä ne myöskään kuulu packfile-tiedostoon.
- Saavuttamattomat objektit: Samankaltainen, mutta laajempi käsite kuin irtonaiset objektit. Niitä voi syntyä esimerkiksi rebasen tai historian uudelleenkirjoittavan reset-toiminnon jälkeen.
git prune poistaa nämä objektit, jos ne ovat oletusarvoista vanhenemisaikaa vanhempia (yleensä 2 viikkoa).
Komennon `git prune` suorittaminen suoraan
Yleensä komentoa git prune ei tarvitse suorittaa suoraan, koska git gc kutsuu sitä. Voit kuitenkin käyttää sitä kohdennetumpaan puhdistukseen.
Jos haluat nähdä, mitä git prune tekisi poistamatta mitään, käytä --dry-run-valitsinta:
git prune --dry-runSiivous vanhenemisajan perusteella
Oletusarvoisesti git prune (ja git gc-komennon siivousvaihe) poistaa vain objektit, jotka ovat vanhempia kuin kaksi viikkoa. Voit ohittaa tämän käyttämällä --expire-valitsinta.
Tämä on hyödyllistä, jos haluat siivota aggressiivisesti hyvin äskettäin luotuja irtonaisia objekteja, esimerkiksi kokeellisen rebasen jälkeen, jonka palauttamista et varmasti tarvitse.
Voit esimerkiksi siivota objektit, jotka ovat vanhempia kuin yhden päivän:
git prune --expire=1.dayEro komentoon `git reflog expire`
On tärkeää olla sekoittamatta komentoja git prune ja git reflog expire toisiinsa. Vaikka molemmat liittyvät siivoukseen, niillä on eri tarkoitus:
git prune: Poistaa varsinaisia Git-objekteja (blobeja, puumaisia objekteja ja committeja) objektitietokannasta.git reflog expire: Siivoaa reflog-lokin merkintöjä (se sisältää paikallisen historian siitä, missä HEAD on ollut), jolloin tiettyjä committeja on vaikeampi löytää, mutta objekteja ei poisteta.
Ole aina varovainen, kun muokkaat historiaa tai suoritat puhdistuskomentoja!
Ylläpidon tarkistus
Mikä seuraavista kuvaa parhaiten komennon git gc ensisijaista tehtävää?
Kertaus ja seuraavat vaiheet
Onnittelut! Olette oppineet pitämään Git-repositoriosi siisteinä ja tehokkaina.
git gc: Yhdistelmäkomento roskien keräämiseen, objektien pakkaamiseen ja siivoamiseen.git prune: Kohdistuu erityisesti saavuttamattomiin ja irtonaisiin objekteihin ja poistaa määritetyn vanhenemisajan ylittäneet objektit.
Säännöllinen ylläpito auttaa pitämään Git-työnkulkusi sujuvana ja estää repositorioita viemästä kohtuuttomasti levytilaa. Jatkakaa samaan malliin!
Opi DevOps-bootcamp 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
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Repositorion ylläpito ja siistiminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Repositorion ylläpito ja siistiminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Repositorion ylläpito ja siistiminen”?
Oppikaa käyttämään komentoja, kuten `git gc` ja `git prune`, paikallisen Git-repositorion siistimiseen ja optimointiin. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Repositorion ylläpito ja siistiminen”-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ä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-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 Reflog ja historian palauttaminen
- Git Bisect virheenkorjaukseen
- Repositorion ylläpito ja siistiminen
- Historian uudelleenkirjoittaminen git filter-repolla