Submoduły Git

Zaawansowany Git

Amanda Crawford-Adamo

Software and Data Engineer

Czym jest submoduł Git?

Submoduł Git

git submodule
  • Repozytorium zagnieżdżone w innym repozytorium
  • Oddzielna kontrola wersji i historia
  • Zmiany w submodule nie wpływają na główne repozytorium
  • Główne repozytorium może odwoływać się do konkretnej wersji submodułu

Ilustracja repozytorium zawierającego wiele repozytoriów.

Zaawansowany Git

Dodawanie submodułu

Dodawanie submodułu za pomocą linku lub katalogu pod wskazaną ścieżką.

git submodule add <repository link|dir> <path>

$$

Przykład

Dodaje bibliotekę walidatora danych do projektu ETL w folderze libs/validator repozytorium ETL.

git submodule add https://github.com/example/data-validator.git libs/validator
Zaawansowany Git

Listowanie submodułów

Wylistowanie wszystkich submodułów w projekcie

git submodule status

Przykład

$ git submodule status
e1f2...7w8x9 data_cleaning_lib
a1b2...q7r8 api_connector
d9e8...t3u2 visualization_toolkit
Zaawansowany Git

Aktualizacja submodułów

Aktualizacja submodułu do najnowszej wersji

Dostępne opcje:

  1. Aktualizuje wszystkie submoduły, których kod źródłowy jest na komputerze lokalnym.
    git submodule update --init 
    
  2. Aktualizuje wszystkie submoduły, których kod źródłowy jest w zdalnym repozytorium.
    git submodule update --init --remote 
    
  3. Aktualizuje wybrany submoduł.
    git submodule update --init <path_to_submodule>
    
Zaawansowany Git

Usuwanie submodułów

Proces usuwania submodułu

  1. Deinicjalizacja submodułu.
    git submodule deinit <submodule_name>
    
  2. Usunięcie submodułu z indeksu repozytorium.
    git rm <path>
    
Zaawansowany Git

Wyodrębnianie submodułu z dużego repozytorium

  1. Skopiuj wszystkie pliki nowego submodułu do folderu poza repozytorium.

  2. W nowym folderze utwórz repozytorium dla submodułu:

    git init <new-submodule>
    
  3. Użyj filter-repo, aby wyodrębnić pliki i historię z projektu głównego:

    git filter-repo --path <extract_path> --invert-paths
    
  4. Dodaj wyodrębnione repozytorium jako submoduł do projektu głównego:

    git submodule add <new-submodule_path> <path_to_store_submodule>
    
Zaawansowany Git

Kiedy używać submodułów i dobre praktyki

Przypadki użycia:

  1. Zarządzanie bibliotekami zewnętrznymi
  2. Współdzielenie kodu między projektami
  3. Utrzymywanie określonych wersji zależności

Dobre praktyki:

  1. Aktualizowanie submodułów
  2. Używanie ścieżek względnych
  3. Komunikowanie zmian zespołowi
Zaawansowany Git

Czas na ćwiczenia!

Zaawansowany Git

Preparing Video For Download...