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
- Data and model versioning: Manages versions of large datasets and machine learning models by storing metadata in Git and the actual data in external storage dvc.org/doc/start/understanding-dvc#how-it-works.
- Git integration: Seamlessly integrates with Git, allowing data and models to be versioned alongside code within the same repository.
- Reproducible experiments: Enables tracking of data, code, and parameters for each experiment, ensuring that results can be reproduced by checking out specific Git commits dvc.org/doc/start/understanding-dvc#reproducibility.
- Experiment tracking: Records metrics, parameters, and model artifacts for different experimental runs, facilitating comparison and analysis of model performance dvc.org/doc/start/understanding-dvc#experiment-management.
- Pipeline management: Defines and manages machine learning pipelines as a series of stages, each with its inputs, outputs, and dependencies, ensuring that changes propagate correctly dvc.org/doc/use/dvc-yaml-reference.
- Cloud storage compatibility: Supports various remote storage backends, including Amazon S3, Google Cloud Storage, Azure Blob Storage, SSH, HDFS, and local file systems dvc.org/doc/command-reference/remote.
- DVC Studio: A cloud platform for visualizing and comparing experiments, managing projects, and collaborating with teams dvc.org/doc/start/understanding-dvc#dvc-studio.
- CML (Continuous Machine Learning): Integrates DVC with CI/CD tools to automate ML workflows, including model training, evaluation, and reporting in platforms like GitHub Actions and GitLab CI dvc.org/doc/start/understanding-dvc#cml-continuous-machine-learning.
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
- Git: DVC is built to extend Git, integrating directly with existing Git repositories for versioning code, data, and models dvc.org/doc/start/understanding-dvc#how-it-works.
- Cloud storage providers: Compatible with Amazon S3, Google Cloud Storage, Azure Blob Storage, and others for storing large datasets dvc.org/doc/command-reference/remote.
- MLflow: While MLflow offers its own data tracking capabilities, DVC can complement it by handling the versioning of large files mlflow.org/docs/latest/tracking.html.
- CI/CD platforms: CML enables integration with GitHub Actions, GitLab CI, Azure Pipelines, and Jenkins for automated ML workflows dvc.org/doc/start/understanding-dvc#cml-continuous-machine-learning.
- Jupyter Notebooks: DVC commands can be executed within Jupyter environments to manage and track data and experiments dvc.org/doc/use/jupyter-notebooks.
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