Intensiv DevOps-uddannelse · Lektion

Monorepos og Git-submodules

Lær om afvejningerne mellem monorepos og multi-repo-opsætninger, og hvordan Git-submodules indlejrer ét repository i et andet.

Lektion 4 af 413 trin

Monorepos og Git-submodules er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Monorepo eller multi-repo

Et monorepo gemmer mange projekter i ét repository. En multi-repo-opsætning holder hvert projekt i sit eget repository. Begge dele er almindelige i stor skala.

Hvorfor teams vælger monorepos

Monorepos gør det nemt at:

  • dele kode på tværs af projekter
  • refaktorere atomart på tværs af grænser
  • bruge én CI-konfiguration og én versionsordning

Udfordringer ved monorepos

Store monorepos kan vokse sig enorme og gøre kloning og CI langsommere. Værktøjer som sparse checkout og build-caches hjælper med at håndtere dette.

Hvad er et submodul?

Et submodul er et separat Git-lager, der er indlejret i et andet lager ved en bestemt commit. Det ydre lager holder styr på, hvilken commit fra det indre lager der skal bruges.

Tilføjelse af et submodul

Indlejr et eksternt lager på en sti med git submodule add.

git submodule add https://github.com/org/shared-lib libs/shared

Filen .gitmodules

Git registrerer stien og URL'en for hvert submodul i en versionsstyret .gitmodules-fil i lagerets rod.

[submodule 'libs/shared']
  path = libs/shared
  url = https://github.com/org/shared-lib

Kloning med submoduler

En almindelig kloning efterlader submodulmapper tomme. Brug det rekursive flag til også at hente dem.

git clone --recurse-submodules https://github.com/org/app

Initialisering af eksisterende submoduler

Hvis du allerede har klonet lageret, henter du submodulernes indhold med init og update.

git submodule update --init --recursive

Opdatering af et submodul

Submoduler forbliver fastlåst til en commit. Hvis du vil flytte et submodul til den nyeste commit, skal du opdatere det inde i submodulet og committe den nye markør i det overordnede lager.

git submodule update --remote libs/shared
git add libs/shared
git commit -m 'Bump shared lib'

Submoduler over for subtree

git subtree er et alternativ, der fletter et andet lagers indhold direkte ind og dermed undgår kompleksiteten ved fastlåste markører, men mister den tydelige adskillelse.

Valg af fremgangsmåde

Brug et monorepo til tæt forbundne projekter, submoduler til at indlejre et delt bibliotek med selvstændig versionsstyring, og flere lagre, når teams er fuldstændig selvstændige.

Hurtigt tjek

Test din forståelse af monorepoer og submoduler.

Opsummering

Du har lært om monorepoer og submoduler:

  • Monorepoer samler mange projekter; flere lagre holder dem adskilt
  • Submoduler indlejrer et lager, der er fastlåst til en commit via .gitmodules
  • Klon med --recurse-submodules
  • Subtree er en alternativ strategi til indlejring
Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Monorepos og Git-submodules” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Monorepos og Git-submodules”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Monorepos og Git-submodules”?

Lær om afvejningerne mellem monorepos og multi-repo-opsætninger, og hvordan Git-submodules indlejrer ét repository i et andet. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Monorepos og Git-submodules”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Git i IDE'er og udviklingsværktøjer
  2. Git-løsninger til virksomheder
  3. Skalering af Git til store teams
  4. Monorepos og Git-submodules
← Tilbage til Intensiv DevOps-uddannelse