Jak zamienić katalog w repozytorium Git w moduł podrzędny

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 addpolecenia:

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 updatepolecenia:

git submodule update --remote submodule_name

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *