Monorepo i podmoduły Git
Poznaj kompromisy między konfiguracją monorepo i multi-repo oraz dowiedz się, jak podmoduły Git osadzają jedno repozytorium w innym.
Monorepo i podmoduły Git to bezpłatna lekcja Git & GitHub Professional Workflow na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Git & GitHub Professional Workflow, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.
Monorepo a multi-repo
Monorepo przechowuje wiele projektów w jednym repozytorium. Konfiguracja multi-repo umieszcza każdy projekt w osobnym repozytorium. Oba podejścia są często stosowane w dużych organizacjach.
Dlaczego zespoły wybierają monorepo
Monorepo ułatwia:
- Współdzielenie kodu między projektami
- Atomowe refaktoryzowanie kodu przekraczające granice projektów
- Korzystanie z jednego CI i jednego schematu wersjonowania
Wyzwania związane z monorepo
Duże monorepo może znacznie urosnąć, spowalniając klonowanie i CI. Narzędzia takie jak sparse checkout i pamięci podręczne kompilacji pomagają nad tym zapanować.
Czym jest submoduł
Submoduł to osobne repozytorium Git osadzone w innym repozytorium przy konkretnym commicie. Zewnętrzne repozytorium śledzi, którego commita wewnętrznego repozytorium należy użyć.
Dodawanie submodułu
Osadź zewnętrzne repozytorium w określonej ścieżce za pomocą git submodule add.
git submodule add https://github.com/org/shared-lib libs/sharedPlik .gitmodules
Git zapisuje ścieżkę i URL każdego submodułu w śledzonym pliku .gitmodules w katalogu głównym repozytorium.
[submodule 'libs/shared']
path = libs/shared
url = https://github.com/org/shared-libKlonowanie z submodułami
Zwykłe klonowanie pozostawia foldery submodułów puste. Użyj flagi rekurencyjnej, aby również je pobrać.
git clone --recurse-submodules https://github.com/org/appInicjowanie istniejących submodułów
Jeśli repozytorium zostało już sklonowane, pobierz zawartość submodułów za pomocą init i update.
git submodule update --init --recursiveAktualizowanie submodułu
Submoduły pozostają przypięte do commita. Aby przejść do najnowszej wersji, zaktualizuj go w jego katalogu, a następnie zatwierdź nowy wskaźnik w repozytorium nadrzędnym.
git submodule update --remote libs/shared
git add libs/shared
git commit -m 'Bump shared lib'Submoduły a subtree
git subtree to alternatywa, która scala zawartość innego repozytorium bezpośrednio, eliminując złożoność przypiętego wskaźnika, ale pozbawiając ją wyraźnego oddzielenia.
Wybór podejścia
Użyj monorepozytorium dla ściśle powiązanych projektów, submodułów do osadzenia współdzielonej biblioteki o niezależnym wersjonowaniu, a wielu repozytoriów, gdy zespoły działają całkowicie niezależnie.
Szybki test
Sprawdź swoją wiedzę na temat monorepozytoriów i submodułów.
Podsumowanie
Dowiedziałeś się o monorepozytoriach i submodułach:
- Monorepozytoria centralizują wiele projektów, a wiele repozytoriów rozdziela je
- Submoduły osadzają repozytorium przypięte do commita za pomocą pliku
.gitmodules - Klonuj za pomocą
--recurse-submodules - Subtree to alternatywna strategia osadzania repozytoriów
Często zadawane pytania
Czy lekcja „Monorepo i podmoduły Git” jest bezpłatna?
Tak — pełny tekst „Monorepo i podmoduły Git” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Git & GitHub Professional Workflow, przejdź na CoddyKit PRO. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.
Co nauczysz się w „Monorepo i podmoduły Git”?
Poznaj kompromisy między konfiguracją monorepo i multi-repo oraz dowiedz się, jak podmoduły Git osadzają jedno repozytorium w innym. Ćwiczysz Git & GitHub Professional Workflow z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Git & GitHub Professional Workflow?
Nie wymagamy żadnego doświadczenia. Git & GitHub Professional Workflow w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Monorepo i podmoduły Git”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Git & GitHub Professional Workflow?
Tak. Każda lekcja Git & GitHub Professional Workflow zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Git w IDE i narzędziach programistycznych
- Git dla przedsiębiorstw
- Skalowanie Git dla dużych zespołów
- Monorepo i podmoduły Git