Jak zamienić katalog w repozytorium Git w moduł podrzędny
Submoduły Git są jak repozytoria w repozytoriach, które pozwalają na włączenie zewnętrznych bibliotek kodu lub zależności do twojego projektu, a wszystko to bez łączenia kontroli wersji modułu z samym projektem. Dzięki temu moduły są oddzielne i łatwe do aktualizacji, a konwersja katalogu na nowy moduł podrzędny jest łatwa.
Co to jest moduł podrzędny w Git?
Moduł podrzędny to repozytorium Git osadzone w innym repozytorium Git. Pozwala to na włączenie kodu z innego projektu jako zależności, przy jednoczesnym zachowaniu własnej kontroli wersji.
Kiedy sklonujesz repozytorium nadrzędne, automatycznie klonuje również repozytorium submodułów. Oznacza to, że kod submodułu i historia Git są oddzielone od głównej kontroli wersji i mogą być aktualizowane dla wielu repozytoriów, które korzystają z biblioteki.
Alternatywą dla submodułów jest publikowanie bibliotek jako pakietów dla menedżerów pakietów, takich jak NPM, Maven lub NuGet. Jednak to nie działa dla wszystkich typów projektów, a jeśli pracujesz z kodem prywatnym, musisz skonfigurować prywatny rejestr pakietów, co może być bardziej skomplikowane niż zwykłe osadzenie kodu źródłowego biblioteki jako modułu podrzędnego .
Jak zamienić katalog w moduł podrzędny
Pierwszym krokiem jest utworzenie nowego repozytorium dla modułu podrzędnego. Zwykle dzieje się to w usłudze hostingowej Git, takiej jak GitHub , chociaż możesz utworzyć lokalne repozytorium na swoim komputerze.
Następnie będziesz chciał uzyskać świeżą kopię głównego repozytorium, z której utworzysz repozytorium submodułów.
git clone git@github.com:username/repository.git submodule-repo
cd submodule-repo
git filter-branch --subdirectory-filter submoduledirectory -- --all
Będziesz chciał zmienić zdalny adres URL tego katalogu modułu na nowe repozytorium submodułów, które zwykle nosi nazwę „origin”.
git remote set-url origin https://github.com/new-repository.git
Następnie możesz przesunąć historię w normalny sposób.
git push -u origin main
Dodanie nowego modułu podrzędnego
Wróć do głównego projektu, będziesz chciał dodać moduł podrzędny.
Najpierw musisz przestać śledzić katalog, który chcesz przekształcić w submoduł z repozytorium nadrzędnego. Nadal będzie tam w historii wersji Gita, a i tak właśnie dodałeś go do nowego repozytorium modułów.
rm -rf directory_name
Następnie możesz dodać zdalny adres URL do repozytorium submodułów, które utworzyłeś na Github, używając git submodule add
polecenia:
git submodule add git@github.com:username/repository.git directory_name
Gdy uruchomisz to polecenie, Git utworzy nowy katalog submodułów w repozytorium nadrzędnym i sklonuje repozytorium submodułów do tego katalogu. Ponownie rozpocznie również śledzenie folderu modułu.
Aby zaktualizować submoduł, możesz użyć git submodule update
polecenia:
git submodule update --remote submodule_name
Dodaj komentarz