> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/ai-workbench/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/ai-workbench/_mcp/server.

> Provides technical specifications for how AI Workbench configures

# Git Configuration Reference

**This page documents the technical specifications for how AI Workbench configures and uses Git.**

- For conceptual background, see [Version Control in AI Workbench](/ai-workbench/concepts/versioning-concept).
- For step-by-step procedures, see [How to Use Version Control](/ai-workbench/how-to/projects/versioning).
- For frequently asked questions, see [Version Control](/ai-workbench/reference/faq#version-control).

## System Requirements

**AI Workbench installs or updates the required dependencies.**

- Git
- Git LFS

**AI Workbench requires a global Git author to be set.**

- If not set, AI Workbench prompts you to set one before allowing any commits.
- You can manually set project-specific Git authors.

## Project Registration

**AI Workbench requires projects to be created or cloned through AI Workbench.**

Projects cloned with `git clone` outside AI Workbench are not registered and cannot be opened.
Always use `nvwb clone` or the Desktop App **Clone** button.

**inventory.json** (*$HOME/.nvwb/inventory.json*) stores project name and path, creation timestamp, and location (local or remote).

**Runtime metadata folder** (*$HOME/.nvwb/project-runtime-info/&lt;project-name>-&lt;hash>/*) stores container build artifacts, application state, and temporary files.

## Git LFS Configuration

**New projects include LFS tracking for the models/ and data/ directories by default.**

AI Workbench adds patterns to .gitattributes and initializes Git LFS when you create or clone a project.

### Default .gitattributes Patterns

```text
models/** filter=lfs diff=lfs merge=lfs -text
data/** filter=lfs diff=lfs merge=lfs -text
```

Pattern attributes: `filter=lfs` (content stored in LFS), `diff=lfs` (LFS-aware diffs), `merge=lfs` (LFS-aware merges), `-text` (mark as binary).

### Customizing LFS Patterns

**To track additional file types with LFS, edit .gitattributes directly.**

```text
# Custom additions
*.h5 filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.zarr/** filter=lfs diff=lfs merge=lfs -text
```

Existing files require migration: `git lfs migrate import --include="*.h5"`

### LFS for Cloned Projects

**If the remote project uses LFS:** AI Workbench respects existing .gitattributes configuration. Git LFS downloads pointer files as needed. No additional setup required.

**If the remote project does not use LFS:** Large files are handled as normal Git objects. No LFS configuration is applied automatically.

### LFS Storage Limits

| **Provider** | **Free LFS Storage** |
|---|---|
| **GitHub** | 1 GB storage, 1 GB bandwidth per month |
| **GitLab** | 10 GB storage per project |
| **Bitbucket** | 1 GB storage |

Exceeding limits may prevent push operations or incur charges. Check your provider's current LFS policies before storing large files.

## .gitignore

**AI Workbench generates a .gitignore that excludes Workbench metadata and standard development tool artifacts.**

Managed entries include:

- `.project/*` (with exceptions for `!.project/spec.yaml` and `!.project/configpacks`)
- Standard Python and Jupyter ignores

You can manually edit .gitignore. Changes take effect immediately for untracked files. Already-tracked files remain tracked until explicitly removed with `git rm --cached`.

## Git Hooks

**AI Workbench does not install custom Git hooks.** All hooks in .git/hooks/ are standard Git LFS hooks, installed by Git LFS during initialization.

| **Hook** | **Purpose** |
|---|---|
| **post-checkout** | Downloads LFS objects after checking out a branch or commit. |
| **post-commit** | Updates LFS tracking information after creating a commit. |
| **post-merge** | Downloads LFS objects after merging branches. |
| **pre-push** | Uploads LFS objects before pushing to remote. |

You can add custom hooks alongside LFS hooks. AI Workbench does not interfere with custom hooks.

## Related Topics

- [Version Control in AI Workbench](/ai-workbench/concepts/versioning-concept) - Conceptual overview of version control
- [How to Use Version Control](/ai-workbench/how-to/projects/versioning) - Step-by-step versioning procedures
- [Version Control](/ai-workbench/reference/faq#version-control) - Frequently asked questions about Git in AI Workbench
- [AI Workbench Project Specification](/ai-workbench/reference/projects/spec) - Complete project specification reference
- [AI Workbench Command Line Interface (CLI) Reference](/ai-workbench/reference/user-interface/cli) - Command-line interface reference