gitaarik/git_submodules.md (Suomi)
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_submodule
hakemistoon, 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.