Overview

DVC (Data Version Control) is an open-source command-line tool developed to address the challenges of managing large files, datasets, and machine learning models within established version control systems like Git. While Git is effective for code, it is not designed to handle binary files or datasets that can range from gigabytes to terabytes in size. DVC extends Git's capabilities by externalizing large files to various remote storage locations while keeping lightweight metadata files in the Git repository itself dvc.org/doc/start/understanding-dvc#how-it-works. This approach allows developers and data scientists to version control their data and models alongside their code, ensuring that every experiment is reproducible.

The core mechanism of DVC involves creating .dvc files, which are small text files that act as pointers to the actual data stored remotely. When a user checks out a specific commit in Git, DVC can retrieve the corresponding data version from the configured remote storage, such as Amazon S3, Google Cloud Storage, Azure Blob Storage, or local disk dvc.org/doc/start/understanding-dvc#how-it-works. This separation of data from the Git repository keeps Git operations fast and efficient, while still providing a complete history of data changes.

DVC is designed for data science teams requiring experiment tracking and reproducibility. It integrates with existing Git workflows, making it suitable for environments where developers are already familiar with Git commands. Beyond data versioning, DVC includes features for experiment management, allowing users to track metrics, parameters, and model outputs across different iterations of their machine learning projects dvc.org/doc/start/understanding-dvc#experiment-management. This functionality supports the creation of reproducible pipelines, where changes to data, code, or parameters can be systematically tracked and reverted.

The DVC ecosystem also includes DVC Studio, a cloud-based platform that provides a graphical user interface for visualizing experiments, comparing results, and collaborating on ML projects dvc.org/doc/start/understanding-dvc#dvc-studio. Additionally, CML (Continuous Machine Learning) extends DVC's capabilities to CI/CD pipelines, enabling automated machine learning workflows, model training, and reporting within platforms like GitHub Actions or GitLab CI dvc.org/doc/start/understanding-dvc#cml-continuous-machine-learning. This suite of tools aims to provide a comprehensive MLOps solution for managing the entire lifecycle of machine learning projects.

Key features

Pricing

DVC (the CLI tool) is open-source and free to use. DVC Studio offers a free tier for individual users and small teams, with paid plans available for additional features and capacity. The following table summarizes DVC Studio pricing as of May 2026:

Plan Price Key Features
Free Free Up to 3 users, up to 100 experiments, unlimited public repos, basic experiment visualization dvc.org/doc/start/understanding-dvc#dvc-studio
Team $15/user/month (billed annually) All Free features, unlimited experiments, unlimited private repos, advanced experiment comparison, collaboration features, priority support dvc.org/doc/start/understanding-dvc#dvc-studio
Enterprise Custom pricing All Team features, enterprise-grade security, dedicated support, custom integrations, self-hosting options dvc.org/doc/start/understanding-dvc#dvc-studio

Common integrations

Alternatives

  • MLflow: An open-source platform for managing the end-to-end machine learning lifecycle, including experiment tracking, reproducible runs, and model deployment.
  • Weights & Biases: A platform for machine learning experiment tracking, visualization, and collaboration, offering tools for run logging, model versioning, and dataset management.
  • LakeFS: An open-source data version control system built on top of object storage, providing Git-like branching and merging for data lakes.
  • Pachyderm: An open-source platform for data-driven pipelines, offering data versioning, reproducible data science, and MLOps automation.

Getting started

To get started with DVC, you typically initialize a Git repository, then initialize DVC within that repository. You then add your data files to DVC, which creates .dvc files that Git tracks, while the actual data is moved to DVC's cache and can be pushed to remote storage.

First, install DVC using pip:

pip install dvc[s3] # Add [s3], [gdrive], [azure], etc. for specific remote storage support

Next, initialize a Git repository and DVC:

mkdir my_ml_project
cd my_ml_project
git init
dvc init

Create a sample data file:

echo "feature1,feature2,target\n1,2,0\n3,4,1" > data.csv

Add the data file to DVC:

dvc add data.csv

This command will create data.csv.dvc and move data.csv into DVC's cache. Now, you can commit both the .dvc file and your code to Git:

git add data.csv.dvc .gitignore
git commit -m "Add initial data.csv"

To configure a remote storage (e.g., S3):

dvc remote add -d myremote s3://my-dvc-bucket/data
git add .dvc/config
git commit -m "Configure S3 remote storage"

Finally, push your data to the remote DVC storage:

dvc push