How to Clone the AI-For-Beginners Repository Without Downloading All Translations Using Sparse Checkout

Use Git's sparse checkout feature to clone the microsoft/AI-For-Beginners repository while excluding the translations/ directory, saving hundreds of megabytes by downloading only core curriculum files.

The AI-For-Beginners repository from Microsoft contains comprehensive AI education materials—and dozens of language-specific translations that can balloon your download to several hundred megabytes. If you only need the core lessons in English, sparse checkout lets you clone without pulling unwanted translation trees. This technique is documented in the project's own Traditional Chinese README at translations/zh-TW/README.md, demonstrating how the maintainers expect users to handle this workflow.

What Is Sparse Checkout and Why Use It for AI-For-Beginners?

Sparse checkout is a Git feature that controls which directories populate your working tree. Combined with partial clone (--filter=blob:none), it downloads only commit history and tree objects upfront, fetching file contents on demand for paths you actually need.

For AI-For-Beginners, this matters because:

  • The translations/ directory contains full copies of every lesson in 20+ languages
  • translated_images/ stores localized screenshots and diagrams
  • Core curriculum files live in lessons/, etc/quiz-app/, and root documentation

Without sparse checkout, you download all translations regardless of which language you actually read.

The Complete Sparse Checkout Command Sequence

Run these commands to clone the repository while excluding all translation content:


# Step 1: Create a sparse, filtered clone

git clone --filter=blob:none --sparse https://github.com/microsoft/AI-For-Beginners.git
cd AI-For-Beginners

# Step 2: Exclude translation directories from checkout

git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'

What Each Flag Does

Flag Purpose
--filter=blob:none Downloads only commit history and tree metadata; defers file content fetching
--sparse Automatically initializes sparse-checkout mode after cloning
--no-cone Enables legacy pattern matching for precise include/exclude rules
'/*' Includes repository root and all top-level items
'!translations' Excludes the entire translations/ directory
'!translated_images' Excludes localized image assets (optional but recommended)

After execution, your working tree contains only core files: Jupyter notebooks under lessons/, the Vue.js quiz application at etc/quiz-app/, and top-level documentation like README.md.

Verifying Your Sparse Clone Worked Correctly

Check what actually downloaded:

ls -R

Expected output shows:

  • lessons/ — core AI curriculum notebooks
  • etc/ — supplementary tools including quiz-app/
  • README.md, CONTRIBUTING.md, SECURITY.md — project documentation
  • No translations/ directory present

To confirm the exclusion is working at the Git level:

git sparse-checkout list

This outputs your active patterns:


/*
!translations
!translated_images

Adding Back Specific Translations On Demand

If you later need a particular language, add it without re-cloning:


# Add French translations only

git sparse-checkout add translations/fr

# Force Git to fetch the newly included files

git checkout HEAD

This incremental approach preserves the bandwidth savings while accommodating multilingual needs.

Key Files in the AI-For-Beginners Repository

Understanding the repository structure helps you craft precise sparse-checkout patterns:

  • lessons/ — The core Jupyter notebooks and markdown lessons covering AI fundamentals through deep learning (microsoft/AI-For-Beginners/tree/main/lessons)
  • etc/quiz-app/ — Vue.js interactive quiz application that complements the curriculum (microsoft/AI-For-Beginners/tree/main/etc/quiz-app)
  • translations/ — Complete curriculum copies in Arabic, Chinese, French, German, Hindi, Japanese, Korean, Portuguese, Russian, Spanish, and more (microsoft/AI-For-Beginners/tree/main/translations)
  • translated_images/ — Localized diagrams and screenshots corresponding to translation content
  • .gitignore — Excludes generated files and ensures repository cleanliness (microsoft/AI-For-Beginners/blob/main/.gitignore)

Advanced Sparse Checkout Patterns for AI-For-Beginners

Beyond basic exclusion, you can refine your checkout for specific use cases:

Clone Only Lesson Notebooks, Exclude Everything Else

git clone --filter=blob:none --sparse https://github.com/microsoft/AI-For-Beginners.git
cd AI-For-Beginners
git sparse-checkout set --no-cone '/lessons/' '/README.md'

Clone Lessons Plus Quiz Application for Full Interactive Experience

git sparse-checkout set --no-cone '/lessons/' '/etc/quiz-app/' '/README.md' '/etc/*' '!/etc/.gitkeep'

Revert to Full Clone If Needed

git sparse-checkout disable
git checkout HEAD

This restores the complete working tree including all translations.

Summary

  • Sparse checkout with partial clone is the standard method for cloning AI-For-Beginners without translations, as documented in translations/zh-TW/README.md
  • Use --filter=blob:none --sparse to defer file downloads, then git sparse-checkout set with exclusion patterns (!translations, !translated_images) to skip unwanted directories
  • The core curriculum resides in lessons/ and etc/quiz-app/—everything else including translations/ is optional
  • Add specific languages back incrementally with git sparse-checkout add without re-downloading the entire repository

Frequently Asked Questions

How much disk space does sparse checkout save for AI-For-Beginners?

The translations/ directory contains complete copies of every lesson in 20+ languages plus localized images, typically adding several hundred megabytes. Sparse checkout reduces initial download to roughly 50-100 MB for core English content, with exact savings depending on current repository size.

Does sparse checkout affect git pull or other operations?

No. Once configured, standard Git workflows work normally—git pull, git fetch, git status all function as expected. Only the working tree is filtered; the full repository metadata remains accessible. New files in excluded directories won't appear in your working tree even after pulling updates.

Can I use sparse checkout with GitHub Desktop or other GUI clients?

GitHub Desktop and most GUI clients don't expose sparse checkout controls directly. Use the command-line sequence above for initial clone, then open the repository in your preferred GUI. The sparse-checkout configuration persists and will be respected by all Git operations regardless of interface.

What Git version is required for sparse checkout with blob filters?

Sparse checkout requires Git 2.25 or later. Partial clone with --filter=blob:none requires Git 2.27 or later. Modern Git distributions (2.35+) include additional sparse-checkout improvements and are recommended for the smoothest experience.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →