Git- ja GitHub-ammattilaisen työnkulku · Oppitunti

Repositorion ylläpito ja siistiminen

Oppikaa käyttämään komentoja, kuten `git gc` ja `git prune`, paikallisen Git-repositorion siistimiseen ja optimointiin.

Oppitunti 3/411 vaihetta

Repositorion ylläpito ja siistiminen on ilmainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.

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

Siivous 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.day

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

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 ”Repositorion ylläpito ja siistiminen” ilmainen?

Kyllä – oppitunnin ”Repositorion ylläpito ja siistiminen” 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 ”Repositorion ylläpito ja siistiminen”?

Oppikaa käyttämään komentoja, kuten `git gc` ja `git prune`, paikallisen Git-repositorion siistimiseen ja optimointiin. 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 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ä 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 Reflog ja historian palauttaminen
  2. Git Bisect virheenkorjaukseen
  3. Repositorion ylläpito ja siistiminen
  4. Historian uudelleenkirjoittaminen git filter-repolla
← Takaisin: Git- ja GitHub-ammattilaisen työnkulku