Skip to navigation

Git Configuration Reference

View as Markdown

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

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/<project-name>-<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

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.

# 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

ProviderFree LFS Storage
GitHub1 GB storage, 1 GB bandwidth per month
GitLab10 GB storage per project
Bitbucket1 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.

HookPurpose
post-checkoutDownloads LFS objects after checking out a branch or commit.
post-commitUpdates LFS tracking information after creating a commit.
post-mergeDownloads LFS objects after merging branches.
pre-pushUploads LFS objects before pushing to remote.

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