The Git AI extension allows users to track code, model, and data together.
Git AI has three goals:
- Integrate models and data as first class citizens into Git. Git AI achieves this goal by extracting metadata from model and data and storing it in Git repositories. This metadata can be compared between different versions.
- Link code, model, and data repositories together to build versioned AI pipelines. Once repositories are linked, users can visualise and compare code and metadata across versions and repositories in AI pipelines.
- Document experiments in the Git version history. In Git AI, each experiment is a branch, with checkpoints logged as commits. This approach not only records all experiments in Git but also facilitates live tracking and easy merging into other branches.
git ai init
Initialises a repository with Git AI metadata.
- It creates a
.git_aifolder at the root of the repository with the configuration files for Git AI
- It automatically commits this folder to the current branch.
git ai input-repo [cmd]
Manages input repositories — Git AI-managed submodules. The following commands are available:
git ai input-repo init [repository-link] [repository-folder] [commit]
Adds a specified input repository to
[commit] is specified, the input repo tracks that commit;
otherwise, it tracks the repository's
This command clones the repository from the provided link and commits the submodule addition.
git ai input-repo update [repository-folder] [commit]
Changes the tracked commit of the repository in
[repository-folder] to the specified
or to the repository's
HEAD if no commit is specified. It then commits this change.
git ai input-repo remove [repository-folder]
Removes the repository in
[repository-folder] and commit the changes.
git ai merge-exp [exp-name]
Merges the experiment branch
[exp-name] into the current branch.
It copies all metadata from
.git_ai at the head of
merges other changes outside
.git_ai as if
[exp-name] were squashed and merged into the current branch.
git ai log
Provides a log of the current repository, taking into account all input repositories. This log is recursive showing changes from all input repositories and their children.