Submodule Git

Git Tingkat Lanjut

Amanda Crawford-Adamo

Software and Data Engineer

Apa itu Git Submodule?

Git Submodule

git submodule
  • Repository di dalam repository lain
  • Kontrol versi dan riwayat terpisah
  • Perubahan submodule tidak memengaruhi repo utama
  • Repo utama dapat mereferensikan versi spesifik submodule

Ilustrasi repo dengan beberapa repository di dalamnya.

Git Tingkat Lanjut

Menambahkan submodule

Menambahkan submodule menggunakan tautan atau direktori di bawah folder path.

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

$$

Contoh

Menambahkan library data validator ke proyek ETL di folder libs/validator dalam repo ETL.

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

Mendaftar submodule

Daftar semua submodule dalam proyek

git submodule status

Contoh

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

Memperbarui submodule

Perbarui submodule ke perubahan terbaru

Ada beberapa opsi:

  1. Memperbarui semua submodule dengan sumber kode di komputer lokal Anda.
    git submodule update --init 
    
  2. Memperbarui semua submodule dengan sumber kode di repo remote.
    git submodule update --init --remote 
    
  3. Memperbarui submodule tertentu
    git submodule update --init <path_to_submodule>
    
Git Tingkat Lanjut

Menghapus submodule

Proses menghapus submodule

  1. De-inisialisasi submodule.
    git submodule deinit <submodule_name>
    
  2. Hapus submodule dari indeks repo git.
    git rm <path>
    
Git Tingkat Lanjut

Mengekstrak submodule dari repo besar

  1. Salin semua file yang perlu ada di repo submodule baru ke folder lain di luar repo.

  2. Di dalam folder baru, buat repository baru untuk submodule:

    git init <new-submodule>
    
  3. Gunakan git filter-repo untuk mengekstrak file dan riwayat yang relevan dari proyek utama:

    git filter-repo --path <extract_path> --invert-paths
    
  4. Tambahkan repository hasil ekstraksi sebagai submodule ke proyek utama:

    git submodule add <new-submodule_path> <path_to_store_submodule>
    
Git Tingkat Lanjut

Kapan menggunakan submodule dan praktik terbaik

Kasus penggunaan:

  1. Mengelola library eksternal
  2. Berbagi kode antar proyek
  3. Mempertahankan versi dependensi tertentu

Praktik terbaik:

  1. Jaga submodule tetap mutakhir
  2. Gunakan path relatif
  3. Komunikasikan perubahan dengan tim
Git Tingkat Lanjut

Ayo berlatih!

Git Tingkat Lanjut

Preparing Video For Download...