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

> Clone microsoft AI-For-Beginners repo with sparse checkout. Exclude translations directory and save space by downloading only core curriculum files. Learn how now.

- Repository: [Microsoft/AI-For-Beginners](https://github.com/microsoft/AI-For-Beginners)
- Tags: how-to-guide
- Published: 2026-08-25

---

**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`](https://github.com/microsoft/AI-For-Beginners/blob/main/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:

```bash

# 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`](https://github.com/microsoft/AI-For-Beginners/blob/main/README.md).

## Verifying Your Sparse Clone Worked Correctly

Check what actually downloaded:

```bash
ls -R

```

Expected output shows:
- `lessons/` — core AI curriculum notebooks
- `etc/` — supplementary tools including `quiz-app/`
- [`README.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/README.md), [`CONTRIBUTING.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/CONTRIBUTING.md), [`SECURITY.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/SECURITY.md) — project documentation
- **No** `translations/` directory present

To confirm the exclusion is working at the Git level:

```bash
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:

```bash

# 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

```bash
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

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

```

### Revert to Full Clone If Needed

```bash
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`](https://github.com/microsoft/AI-For-Beginners/blob/main/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.