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.
Monorepos og Git-submodules er en gratis Professionelt Git- og GitHub-arbejdsforløb-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Professionelt Git- og GitHub-arbejdsforløb, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Professionelt Git- og GitHub-arbejdsforløb-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/sharedFilen .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-libKloning 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/appInitialisering af eksisterende submoduler
Hvis du allerede har klonet lageret, henter du submodulernes indhold med init og update.
git submodule update --init --recursiveOpdatering 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
Lær Professionelt Git- og GitHub-arbejdsforløb 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
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Monorepos og Git-submodules” gratis?
Ja — hele teksten til “Monorepos og Git-submodules” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Professionelt Git- og GitHub-arbejdsforløb-kurset, skal du opgradere til CoddyKit PRO. Professionelt Git- og GitHub-arbejdsforløb-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 Professionelt Git- og GitHub-arbejdsforløb 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å Professionelt Git- og GitHub-arbejdsforløb?
Der kræves ingen tidligere erfaring. Professionelt Git- og GitHub-arbejdsforløb 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 Professionelt Git- og GitHub-arbejdsforløb-lektion?
Ja. Alle Professionelt Git- og GitHub-arbejdsforløb-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
- Git i IDE'er og udviklingsværktøjer
- Git-løsninger til virksomheder
- Skalering af Git til store teams
- Monorepos og Git-submodules