Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin
Opitte hallitsemaan täsmällisesti, mihin commitiin tai tagiin alimoduuli osoittaa, jotta buildit ovat toistettavia ja riippuvuuspäivitykset harkittuja ja tarkistettavia edistyneissä työnkuluissa.
Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin on ilmainen Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.
Alimoduulit kiinnittävät commitit, eivät haaroja
Yleinen väärinkäsitys on, että alimoduuli seuraa haaraa. Todellisuudessa superprojekti tallentaa jokaiselle alimoduulille tietyn commitin SHA-tunnisteen. Haaroilla on merkitystä vain, kun päätät päivittää alimoduulin.
Tämä kiinnitys tekee alimoduuleihin perustuvista koonneista toistettavia eri koneilla ja eri aikoina.
Kiinnitetyn commitin tarkastelu
Näet tarkalleen, mihin committiin kukin alimoduuli on lukittu komennolla git submodule status. Alussa näkyvä SHA-tunniste on tallennettu kiinnitys.
git submodule status
# +a1b2c3d libs/engine (v2.3.0-4-ga1b2c3d)Tilatunnisteen etuliitteen tulkitseminen
- (välilyönti) — alimoduuli on kiinnitetyssä commitissa
- + — uloskirjattu commit poikkeaa kiinnityksestä
- - — alimoduulia ei ole alustettu
- U — alimoduulissa on yhdistämisristiriitoja
Tiettyyn tagiin kiinnittäminen
Voit kiinnittää alimoduulin julkaistuun tagiin siirtymällä alimoduuliin, uloskirjaamalla tagin ja tallentamalla uuden osoittimen superprojektiin commitilla.
cd libs/engine
git fetch --tags
git checkout v2.4.0
cd ../..
git add libs/engine
git commit -m 'Pin engine to v2.4.0'Tarkkaan SHA-tunnisteeseen kiinnittäminen
Joskus tarvitset julkaisujen välissä olevan commitin. Kirjaa täsmällinen SHA-tunniste ulos alimoduulin sisällä ja tallenna se sitten superprojektiin.
cd libs/engine
git checkout 9f8e7d6
cd ../..
git add libs/engine
git commit -m 'Pin engine to 9f8e7d6 hotfix'Detached HEAD on tässä normaali
Tagin tai SHA-tunnisteen uloskirjaaminen asettaa alimoduulin tilaan detached HEAD. Kiinnittämisessä tämä on odotettua ja oikein. Siirry haaraan vain, kun aiot kehittää alimoduulin sisällä.
Valinnainen haaran seuranta
Voit tallentaa ensisijaisen haaran tiedostoon .gitmodules, jolloin git submodule update --remote tietää, mitä haaraa seurata. Kiinnitys on silti ensisijainen, kunnes päivität sen nimenomaisesti.
[submodule "libs/engine"]
path = libs/engine
url = https://example.com/engine.git
branch = stableHallitut päivitykset komennolla --remote
Voit päivittää alimoduulin seuratun haaran uusimpaan versioon komennolla --remote. Tarkista erot ennen uuden kiinnityksen commitoimista, jotta päivitys on harkittu.
git submodule update --remote libs/engine
git diff --submodule
git add libs/engine && git commit -m 'Bump engine'Kiinnitysten valvonta CI:ssä
Koontien pitäisi epäonnistua, jos alimoduuli poikkeaa kiinnityksestään. CI-tarkistus varmistaa, että uloskirjattu SHA-tunniste vastaa tallennettua tunnistetta.
git submodule status | grep '^+' && echo 'Submodule drift!' && exit 1Miksi harkittu kiinnittäminen on tärkeää
Alimoduulien tahattomat päivitykset aiheuttavat usein vaikeasti jäljitettäviä koontivirheitä. Kun jokaista kiinnityksen muutosta käsitellään tarkistettavana, tarkoituksellisena commitina, riippuvuudet pysyvät ennakoitavina ja jäljitettävinä.
Virheellisen kiinnityksen kumoaminen
Jos kiinnityksen päivitys rikkoo koonnin, kumoa se kuten mikä tahansa muutos: osoitinta siirtävä superprojektin commit voidaan kumota, jolloin alimoduuli palautuu edelliseen SHA-tunnisteeseensa.
git revert <pin-bump-commit>
git submodule update --init libs/enginePikatesti
Testaa ymmärryksesi alimoduulien kiinnittämisestä.
Kertaus
Opit, että alimoduulit kiinnittävät commitien SHA-tunnisteet, miten komennon git submodule status etuliitteitä luetaan, miten alimoduuli kiinnitetään tagiin tai tarkkaan SHA-tunnisteeseen, miksi detached HEAD on normaali, miten valinnainen haaran seuranta toimii, miten --remote-päivityksiä hallitaan ja miten CI:ssä valvotaan poikkeamia. Harkittu kiinnittäminen pitää edistyneet alimoduuliasetukset toistettavina.
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 ”Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin” ilmainen?
Kyllä – oppitunnin ”Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin” 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 ”Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin”?
Opitte hallitsemaan täsmällisesti, mihin commitiin tai tagiin alimoduuli osoittaa, jotta buildit ovat toistettavia ja riippuvuuspäivitykset harkittuja ja tarkistettavia edistyneissä työnkuluissa. 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 4/4.
Kuinka kauan ”Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin”-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
- Työskentely alimoduulien haarojen kanssa
- Sisäkkäiset alimoduulit ja monimutkaiset rakenteet
- Alimoduulien yleiset ongelmat ja korjaukset
- Alimoduulien kiinnittäminen tiettyihin tageihin ja committeihin