gitaarik/git_submodules.md (Suomi)

0 Comments

Miksi alamoduulia?

Git: ssä voit lisätä submodulen arkistoon. Tämä on pohjimmiltaan arepository upotettu päävarastoon. Tämä voi olla erittäin hyödyllistä. Pari etuja käyttämällä alamoduulia:

  • erillinen koodi eri arkistoissa.

    hyödyllinen, jos sinulla on codebase isoilla komponenteilla, voit tehdä acomponentista submodulen. Näin sinulla ” ll on puhtaampi git-loki (sitoutuu tiettyyn komponenttiin).,

  • Voit lisätä submodule useita arkistoja.

    hyödyllinen, jos sinulla on useita arkistoja, jotka jakavat samecomponents. Tällä lähestymistavalla voit helposti päivittää kaikki arkistot, jotka lisäsivät ne submodule.Tämä on paljon mutkikkaampaa kuin koodin kopioiminen tietovarastoihin.

Perusteet

Kun lisäät submodule vuonna Git, et”t lisää koodi thesubmodule tärkein arkiston, voit vain lisätä tietoa thesubmodule, joka lisätään tärkeimmät arkiston., Tämä informaatio kertoo, mitkä sitoutuvat submodule osoittaa. Näin thesubmodule ”s code won”t päivittyy automaattisesti, jos submodule” srepository päivitetään. Tämä on hyvä, koska koodisi ei ehkä toimi uusimman toimeksiannon kanssa, se estää yllätyksettömyyden.,

Lisäämällä submodule

Voit lisätä submodule arkistoon, kuten tämä:

Kanssa oletusasetuksilla, tämä tulee tarkistaa koodiawesome_submodule.git arkisto path_to_awesome_submodulehakemistoon, ja lisää tietoa main repository asiaa submodule, joka sisältää sitoutua submodule pistettä,joka on nykyisen sitoutua default branch (yleensämaster branch), kun tämä komento suoritetaan.,

tämän toimenpiteen Jälkeen, jos et git status sinä”ll nähdä kaksi tiedostoja inthe Changes to be committed luettelo: .gitmodules tiedosto ja pathto, että submodule. Kun toimitat ja työnnät näitä tiedostoja, toimitat / työnnät alivalikon alkuperään.

Saada submodule”s code

Jos uusi submodule on luotu yksi henkilö, muut ihmiset theteam täytyy aloittaa tämä submodule. Ensin pitää saada tieto alivalikosta, tämä haetaan normaalillagit pull., Jos on uusia alamoduulia sinä”ll nähdä sen tuotosgit pull. Sitten sinua”ll on aloittaa niistä:

Tämä vetää kaikki koodi submodule ja aseta se thedirectory, että se”on määritetty.

Jos”olet kloonannut arkistosta, joka käyttää submoduleja, sinun pitäisi myös suorittaa tämä komento saadaksesi submodule”s-koodin. Tämä ei tapahdu automaattisesti git clone.

päivitysten työntäminen alivalikkoon

alivalikko on vain erillinen arkisto., Jos haluat tehdä vähentämiseksi, sinun pitäisi tehdä muutoksia tässä arkistossa ja työnnä ne likein säännöllinen Git repository (vain suorittaa git-komentoja thesubmodule”s-hakemistoon). Kuitenkin, sinun pitäisi myös antaa mainrepository tietää, että olet”ve päivitetty submodule”s arkisto, ja hoitaa käytä uusinta commit varasto submodule. Koska jos teet uusia toimituksia alivalikon sisällä, päävarasto viittaa edelleen vanhaan toimitukseen.,

Joten, jos haluat nämä muutokset sinun tärkein arkiston, liian, sinun tulisi kertoa tärkein arkiston, voit käyttää uusin commit thesubmodule. Miten teet tämän?

Niin olet”ve tehnyt muutoksia submodule”s arkisto ja sitoutunut themin sen arkistoon. Jos nyt tehdä git status vuonna mainrepository, sinun”ll nähdä, että submodule on lista Changes not staged for commit ja se on tekstiä (modified content) sen takana.Tämä tarkoittaa sitä, että submodule-koodi tarkistetaan adifferent-toimituksessa kuin päävarasto osoittaa., Tomake tärkeimmät arkiston kohta tämä uusi sitoutua, et vain addthis muuttaa git add ja sitten sitoutua ja työnnä se.

jos joku on päivittänyt alivalikon, muiden ryhmän jäsenten on päivitettävä alivalmiuksiensa koodi. Tämä ei ole automaattisesti tehnytgit pull, koska git pull se vain hakee kerätyt, että submodule on osoittaa anothercommit, mutta ei”t päivittää submodule”s-koodi., Päivittää thecode oman alamoduulia, sinun pitäisi ajaa:

Mitä tapahtuu, jos et”t suorita tämä komento?

Jos et ” t suorita tätä komentoa, alivalikon koodi tarkistetaan vanhalle toimitukselle. Kun teet git status näet thesubmodule Changes not staged for commit lista, jossa teksti(modified content) sen takana. Tämä ei johdu siitä, että olet muuttanut thesubmodule ” s koodi, mutta koska sen koodi on tarkistettu eri kommit. Joten Git näkee tämän muutoksena, mutta itse asiassa et vain”t päivittää submodule”s koodi., Joten jos ” uudelleen työskennellä kanssamodules, älä unohda pitää submodules ajan tasalla.

helpottaa kaikkien

on joskus ärsyttävää, jos unohdat aloittaa ja päivittää ohjeistasi. Onneksi on olemassa joitakin temppuja, jotta se helpompaa:

Tämä päivittää alamoduulia, ja jos ne”re ei aloitettu vielä, willinitiate niitä.

submodules voi olla myös submodules sisällä submodules., Tässä tapauksessa sinun”llwant päivittää/käynnistää alamoduulia rekursiivisesti:

Tämä on paljon kirjoittaa, joten voit tehdä alias:

Nyt kun olet suorittaa git update, se tulee suorittaa git pull ja git submodule update --init --recursive näin olet päivittänyt kaikki codein projektin.


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *