Git videregående: Monorepo, Submodules og arbeidsflyter · leksjon

Nestede submoduler og komplekse oppsett

Utforsk strategier for å administrere repositorier som selv inneholder submoduler, og håndtere avhengigheter på flere nivåer.

Leksjon 2 av 411 trinn

Nestede submoduler og komplekse oppsett er en gratis leksjon i Git videregående: Monorepo, Submodules og arbeidsflyter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Git videregående: Monorepo, Submodules og arbeidsflyter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Git videregående: Monorepo, Submodules og arbeidsflyter inneholder totalt 4 leksjoner.

Hva er nestede delmoduler?

Se for Dem et Git-repositorium som inneholder et annet Git-repositorium som en delmodul. Se så for Dem at den indre delmodulen selv inneholder en annen delmodul! Dette er et oppsett med nestede delmoduler.

Det ligner russiske matrjosjka-dukker for kode, der hver dukke (repositorium) kan inneholde en annen, mindre dukke (delmodul).

Hvorfor bruke nestede delmoduler?

Nestede delmoduler er nyttige for å håndtere komplekse prosjekter med dype avhengigheter:

  • Modulær arkitektur: Del store systemer opp i mindre, gjenbrukbare komponenter.
  • Delte biblioteker: En komponent (delmodul) kan være avhengig av et felles verktøybibliotek (nestet delmodul).
  • Integrasjon med tredjeparter: Integrer eksterne prosjekter som selv har delmoduler.

De gjør det mulig å holde relatert kode samlet, samtidig som uavhengig utvikling tillates.

Legge til delmodulen på første nivå

La oss begynne med å opprette et hovedprosjekt og legge til en vanlig delmodul. Vi kaller hovedprosjektet SuperApp og den første delmodulen Frontend.

Initialiser først SuperApp og legg til Frontend:

mkdir SuperApp
cd SuperApp
git init
git submodule add https://github.com/your-org/Frontend.git Frontend

Legge til den nestede delmodulen

Nå går vi inn i delmodulen Frontend og legger til et annet repositorium, for eksempel UI-Components, som en nestet delmodul i den.

Husk å committe disse endringene både i delmodulen og i hovedrepositoriet:

cd Frontend
git submodule add https://github.com/your-org/UI-Components.git UI-Components
git add .
git commit -m "Add UI-Components submodule"
cd ..
git add Frontend
git commit -m "Update Frontend submodule with UI-Components"

Kloning med nestede delmoduler

Når noen kloner repositoriet SuperApp, må de uttrykkelig be Git om å initialisere og oppdatere alle delmoduler, inkludert de nestede.

Flagget --recursive er avgjørende her:

git clone https://github.com/your-org/SuperApp.git
cd SuperApp
git submodule update --init --recursive

Navigere i nestede delmoduler

For å arbeide direkte inne i en nestet delmodul navigerer De ganske enkelt gjennom katalogstrukturen, akkurat som i alle andre mapper.

For eksempel, for å nå UI-Components fra SuperApp:

cd SuperApp/Frontend/UI-Components
# Now you are inside the nested submodule

Oppdatere nestede delmoduler

Hvis fjernrepoet for UI-Components (den nestede delmodulen) eller Frontend (delmodulen på første nivå) mottar nye commiter, vil De oppdatere de lokale kopiene.

Bruk --remote for å hente det nyeste fra den fjernsporede grenen, og --recursive for å bruke det på alle nivåer:

git submodule update --init --remote --recursive

Videreføre endringer oppover

Hvis De gjør og committer endringer i en nestet delmodul (for eksempel UI-Components), må De deretter oppdatere den overordnede delmodulen (Frontend) slik at den refererer til den nye commiten. Til slutt oppdaterer De hovedrepositoriet (SuperApp) slik at det refererer til den nye tilstanden til Frontend.

  • Commit i UI-Components.
  • cd .. til Frontend, git add UI-Components, git commit.
  • cd .. til SuperApp, git add Frontend, git commit.

Dette sikrer at alle overordnede repositorier følger riktig tilstand.

Utfordringer med nestede delmoduler

Nestede delmoduler er kraftige, men kan gjøre ting mer komplekse:

  • Frakoblet HEAD: Delmoduler havner ofte i en tilstand med frakoblet HEAD, noe som betyr at De ikke er på en gren. Husk å sjekke ut en gren hvis De planlegger å committe.
  • Versjonshåndtering: Det kan være krevende å holde oversikt over bestemte SHA-1-verdier for commiter på flere nivåer.
  • Oppsettstid: Første kloning og oppdatering kan ta lengre tid på grunn av flere repositorier.

Hurtigsjekk: Kloningskommando

De har nettopp klonet et hovedrepositorium som bruker nestede delmoduler. Hvilken kommando bør De kjøre nå for å sikre at alle delmoduler, inkludert de nestede, blir riktig initialisert og oppdatert?

Oppsummering: Nestede delmoduler

I denne leksjonen utforsket vi nestede delmoduler og lærte hvordan man håndterer repositorier som inneholder delmoduler som igjen inneholder andre delmoduler.

  • Vi lærte hvordan man legger til og kloner repositorier med avhengigheter på flere nivåer.
  • Vi gikk gjennom hvordan man navigerer i og oppdaterer disse komplekse strukturene.
  • Vi diskuterte også utfordringene og hvor viktig det er å videreføre endringer oppover i hierarkiet.

Nestede delmoduler er et kraftig verktøy for komplekse, modulære prosjekter, men krever omhyggelig håndtering!

Gratis å komme i gang

Lær deg Git videregående: Monorepo, Submodules og arbeidsflyter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Nestede submoduler og komplekse oppsett» gratis?

Ja – hele teksten i «Nestede submoduler og komplekse oppsett» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Git videregående: Monorepo, Submodules og arbeidsflyter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Git videregående: Monorepo, Submodules og arbeidsflyter inneholder totalt 4 leksjoner.

Hva lærer jeg i «Nestede submoduler og komplekse oppsett»?

Utforsk strategier for å administrere repositorier som selv inneholder submoduler, og håndtere avhengigheter på flere nivåer. Du øver på Git videregående: Monorepo, Submodules og arbeidsflyter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Git videregående: Monorepo, Submodules og arbeidsflyter?

Ingen tidligere erfaring er nødvendig. Git videregående: Monorepo, Submodules og arbeidsflyter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Nestede submoduler og komplekse oppsett»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Git videregående: Monorepo, Submodules og arbeidsflyter-leksjonen?

Ja. Alle Git videregående: Monorepo, Submodules og arbeidsflyter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Arbeide med grener i submoduler
  2. Nestede submoduler og komplekse oppsett
  3. Vanlige problemer med submoduler og løsninger
  4. Feste submoduler til bestemte tagger og commits
← Tilbake til Git videregående: Monorepo, Submodules og arbeidsflyter