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
- Add a submodule and initialize it.
- Clone a repo with submodules.
- Update submodules to latest commit.
- Use sparse checkout on a large repo.
- 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.