Lesson Completion
Back to course

Module 12: Submodules and Large Repos

Overview

This module covers Git submodules, strategies for large repositories, and practical tips for managing big codebases.

Learning Objectives

  • Understand what submodules are
  • Add, update, and remove submodules
  • Clone repos with submodules
  • Use submodule commands safely
  • Understand monorepo vs multirepo tradeoffs
  • Use sparse checkout for large repos
  • Keep large repos clean and fast

Topics Covered

12.1 What is a Submodule?

  • Submodule as a repo inside a repo

12.2 Adding a Submodule

  • git submodule add

12.3 Cloning with Submodules

  • --recurse-submodules

12.4 Updating Submodules

  • git submodule update

12.5 Removing Submodules

  • Clean removal steps

12.6 Submodule Best Practices

  • Pinning and updating

12.7 Monorepo vs Multirepo (Conceptual)

  • High-level comparison

12.8 Sparse Checkout

  • Pull only what you need

12.9 Large Repo Performance Tips

  • Shallow clones, pruning

12.10 Large Repo Hygiene

  • Ignore build artifacts

Hands-on Exercises

  1. Add a submodule and initialize it.
  2. Clone a repo with submodules.
  3. Update submodules to latest commit.
  4. Use sparse checkout on a large repo.
  5. Compare monorepo vs multirepo pros/cons.

Key Takeaways

  • Submodules are repos inside repos.
  • Sparse checkout helps with huge codebases.
  • Good hygiene keeps large repos fast.

Additional Resources

  • Pro Git: Submodules
  • git help submodule

Assessment

  • Quiz on submodules and large repo tools
  • Practical: add and update a submodule

Next Module

Module 13 will cover Git LFS and large files.