Skip to main content
Migrate the current files, then use Gat for future versions. Old commits keep their DVC metadata and may still need DVC and its storage. See How Gat works for the lock, cache, and publishing model that will manage new versions.
Gat replaces data versioning, not DVC pipelines, experiments, metrics, or plots. Retire or replace those workflows before removing their output definitions. Configure Gat storage separately; it uses a different object format.

Migrate the current version

These examples move data/ and models/. Substitute only the paths you intend to migrate, and start with a .
1

Create a branch and restore the data

Verify the real files are present before removing any DVC metadata.
2

Configure Gat storage

Replace the URL and configure credentials using Set up a remote.
3

Release DVC ownership

This removes the definitions and their ignore entries while keeping workspace files. Do not pass --outs, which deletes the outputs.
4

Track the files with Gat

Confirm all intended files are listed. If old ignore rules still match, remove those rules or use gat add --force for the intended paths.
5

Commit and publish

Review the staged changes before committing. Upload Gat objects before publishing the Git branch. --path . includes all paths even if a default selection is configured.

Validate from a fresh clone

Replace the repository URL, then run:
Open the restored files and confirm their contents. This revision should reconstruct the migrated data without DVC.
Merge the migration branch once validation succeeds. Keep the old DVC storage for as long as pre-migration revisions must remain reproducible.

Troubleshooting

Keep the DVC metadata. Resolve its credentials or storage access first. If objects are missing, recover the bytes from another clone, cache, or backup. Metadata alone cannot recover file contents.
Check with git ls-files -- PATH. If the data file is listed, remove only its index entry, keeping the working copy:
Keep .dvc files and pipeline metadata that still serve unmigrated data.
Run git check-ignore -v PATH and inspect .gatignore. Remove stale rules or use gat add --force PATH. Force bypasses ignore filtering, but still rejects Git-tracked files and other unsafe selections.
Restore the DVC definition, then download the data again:
For pipeline outputs, restore the relevant dvc.yaml and dvc.lock instead. Verify the restored bytes before retrying the migration without --outs.
Keep .dvc/, dvc.yaml, and dvc.lock while any pipeline, experiment, or unmigrated data still uses them. A partial migration is fine; give each output one owner and retain historical storage as needed.

Storage troubleshooting

Credentials, endpoints, and connection failures.

Missing files or conflicts

Restore files, preserve edits, or repair cached objects.