Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut · Oppitunti

Git-repositorion suorituskyvyn optimointi

Oppikaa tekniikoita, kuten roskienkeruu, pack-tiedostot ja shallow clone -kloonit, Git-repositorion suorituskyvyn ja koon parantamiseen.

Oppitunti 3/412 vaihetta

Git-repositorion suorituskyvyn optimointi on ilmainen Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-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 edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssilla on yhteensä 4 oppituntia.

Paranna Gitin suorituskykyä

Oletko huomannut Git-varastosi hidastuvan? Suuret varastot, erityisesti sellaiset, joissa on paljon tiedostoja, pitkä historia tai binääriresursseja, voivat muuttua hitaiksi.

Tässä oppitunnissa opit optimoimaan Git-varaston suorituskykyä ja pienentämään sen kokoa käyttämällä muun muassa roskienkeruuta, pack-tiedostoja ja shallow cloneja.

Gitin objektien tallennus

Kun commitoit muutoksia, Git tallentaa tietosi objekteina. Aluksi ne tallennetaan yksittäisinä loose-objekteina hakemistoon .git/objects.

Vaikka tämä on yksinkertaista, monien pienten loose-objektien tallentaminen voi olla tehotonta. Se lisää levytilan käyttöä ja hidastaa toimintoja, koska Git joutuu lukemaan monia erillisiä tiedostoja.

Pack-tiedostot

Tehottomuuden vähentämiseksi Git ryhmittelee nämä loose-objektit ajoittain pack-tiedostoiksi. Pack-tiedosto on yksi pakattu tiedosto, joka sisältää useita Git-objekteja.

Tässä pakkausprosessissa käytetään delta-pakkausta: samankaltaisten objektien välille tallennetaan vain erot. Tämä vähentää levytilan tarvetta merkittävästi ja nopeuttaa tietojen hakemista.

Automaattinen roskienkeruu

Gitissä on sisäänrakennettu roskienkeruuksi (GC) kutsuttu mekanismi, joka suoritetaan automaattisesti taustalla. Se siivoaa tarpeettomat objektit ja pakkaa loose-objektit pack-tiedostoiksi.

Tämä automaattinen prosessi käynnistyy yleensä tiettyjen toimintojen, kuten kloonauksen, pullauksen tai tietyn commit-määrän jälkeen. Näin varastosi pysyy siistinä ilman manuaalisia toimia.

Manuaalinen roskienkeruu: `git gc`

Voit käynnistää roskienkeruun manuaalisesti milloin tahansa komennolla git gc. Tämä on hyödyllistä, jos epäilet varastosi paisuneen tai automaattista roskienkeruuta ei ole suoritettu viime aikoina.

Komento git gc pakkaa loose-objektit, poistaa saavuttamattomat objektit ja optimoi varaston sisäisen rakenteen.

git gc

`git gc` ja `--prune`

Komennon git gc --prune-valinnalla voit määrittää, kuinka vanhoja saavuttamattomien objektien on oltava ennen niiden poistamista. Oletusarvoisesti Git poistaa yli kaksi viikkoa vanhat objektit.

Valinnalla --prune=now voit poistaa kaikki saavuttamattomat objektit välittömästi. Ole varovainen, sillä tämä poistaa tietoja, jotka saattaisivat vielä olla palautettavissa reflogin avulla, jos suoritat siivouksen liian aggressiivisesti.

git gc --prune=now

GC:n toiminnan määrittäminen

Voit hienosäätää Gitin automaattisen roskienkeruun toimintaa määritysasetuksilla. Asetukset määritetään usein maailmanlaajuisesti tai varastokohtaisesti.

  • gc.auto: Automaattisen roskienkeruun käynnistävien loose-objektien määrä.
  • gc.autopacklimit: Automaattisen pakkaamisen käynnistävien pack-tiedostojen määrä.

Voit esimerkiksi muuttaa automaattisen roskienkeruun kynnysarvoa seuraavasti:

git config --global gc.auto 5000
# Default is 6700

Shallow clonien ymmärtäminen

Erittäin suurissa varastoissa koko historian noutaminen voi kestää kauan ja kuluttaa paljon levytilaa. Shallow clone auttaa tässä.

Shallow clone lataa vain määritetyn määrän viimeisimpiä committeja koko historian sijaan. Näin alkuperäinen kloonaus on paljon nopeampi ja paikallinen varasto huomattavasti pienempi.

Shallow clonen luominen

Luo shallow clone käyttämällä --depth-valintaa komennon git clone kanssa ja määrittämällä noudettavien commitien määrä.

Tämä on erittäin hyödyllistä CI/CD-putkissa tai silloin, kun tarvitset vain projektin uusimman version ilman koko historiaa.

git clone --depth 1 https://github.com/user/repo.git

Shallow clonen syventäminen

Entä jos tarvitset myöhemmin lisää historiaa shallow clonesta? Voit syventää sitä komennolla git fetch --depth noutamalla lisää committeja.

Näin voit aloittaa shallow clonella ja noutaa lisää historiaa vähitellen vain tarvittaessa, säilyttäen suorituskykyedut.

git fetch --depth 50
# Fetches 50 more commits into history

Pikatarkistus

Ros****ienkeruu ja shallow clon**** ovat suorituskyvyn kannalta tärkeitä. Testataan ymmärrystäsi.

Kertaus: optimoitu Git

Hienoa työtä! Olet oppinut pitämään Git-varastosi kevyinä ja nopeina.

  • Roskienkeruu (GC) pakkaa loose-objektit tehokkaiksi pack-tiedostoiksi.
  • Voit suorittaa komennon git gc manuaalisesti tai määrittää sen automaattisen toiminnan.
  • Shallow clon**** (git clone --depth) nopeuttavat ensimmäisiä noutoja rajoittamalla historiaa.
  • Voit syventää shallow clonea komennolla git fetch --depth.

Nämä tekniikat ovat olennaisia suurten projektien hallinnassa ja sujuvan työnkulun ylläpitämisessä.

Aloita maksutta

Opi Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut 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-repositorion suorituskyvyn optimointi” ilmainen?

Kyllä – oppitunnin ”Git-repositorion suorituskyvyn optimointi” 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 edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssin, päivitä CoddyKit PROhon. Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Git-repositorion suorituskyvyn optimointi”?

Oppikaa tekniikoita, kuten roskienkeruu, pack-tiedostot ja shallow clone -kloonit, Git-repositorion suorituskyvyn ja koon parantamiseen. Harjoittelet Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Git-repositorion suorituskyvyn optimointi”-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 edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppitunnilla?

Kyllä. Jokainen Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-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. Kadonneiden commitien ja haarojen palauttaminen
  2. Virheenkorjaus Git Bisectillä
  3. Git-repositorion suorituskyvyn optimointi
  4. Työn pelastaminen Reflogilla ja Stashilla
← Takaisin: Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut