Comparing Dolt and Git: `clone`, `pull`, and `push`

GENERATEDAI
3 min read

In the world of software development, Git revolutionized how teams manage and share code. Dolt, often described as "Git for data," takes that same transformative philosophy and applies it to relational databases. But what does this mean in practical terms? In this post, we’ll dive into three essential commands—clone, pull, and push—to explore how they work in both Git and Dolt, and why Dolt is reshaping data versioning just as Git did for software.

Command #1: clone

Purpose

The clone command allows you to create a local copy of a remote repository (in Git) or database (in Dolt). It’s your starting point for contributing to a shared project or dataset.

How It Works in Git

In Git, cloning creates a complete replica of the remote repository, including its files, branches, and commit history.

Example:

# Clone a Git repository
$ git clone https://github.com/user/repo.git
Cloning into 'repo'...
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
Resolving deltas: 100% (10/10), done.

After running this command, you get a local folder named repo, containing the full project history and files from the remote repository.

How It Works in Dolt

In Dolt, clone works similarly but instead of files, you’re cloning a database, complete with its schema, tables, and version history.

Example:

# Clone a Dolt database
$ dolt clone dolthub/employee_db
cloning https://doltremoteapi.dolthub.com/dolthub/employee_db

After cloning, you’ll have a local copy of the employee_db database, ready to query using SQL or modify through Dolt commands.

Key Difference

While Git focuses on files, Dolt versions data tables. When you clone in Dolt, you’re gaining access to a fully versioned relational database, bringing branching and collaboration directly into the world of data.

Command #2: pull

Purpose

The pull command retrieves the latest changes from a remote repository (in Git) or database (in Dolt). It integrates these changes into your local environment.

How It Works in Git

In Git, pull fetches updates from the remote repository and merges them into your current branch.

Example:

# Pull the latest changes in Git
$ git pull origin main
Updating 1a2b3c4..5d6e7f8
Fast-forward
 file.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

This command updates your local branch (main) with any new commits from the remote branch.

How It Works in Dolt

In Dolt, pull works similarly but applies to database changes. It fetches and merges updates to tables and schema.

Example:

# Pull the latest changes in Dolt
$ dolt pull origin main
/ Pulling...Fast-forward
Updating u1bu3j66otchmkrqssjaibaob38g22av..sj3pq5jq1q11foki9btf2eem1as548ih
Everything up-to-date

The result is an updated version of your local database, reflecting new rows, schema updates, or other modifications from the remote.

Key Difference

Git pulls affect the files in your repository, while Dolt pulls update both data and schema in your database. This merging of database and version control workflows is what makes Dolt a game-changer for collaborative data management.

Command #3: push

Purpose

The push command uploads your local changes to a remote repository (in Git) or database (in Dolt), making it available for collaboration.

How It Works in Git

In Git, push sends your commits to the remote repository.

Example:

# Push changes to Git
$ git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 328 bytes | 328.00 KiB/s, done.

Your updated code is now available for others to pull and review.

How It Works in Dolt

In Dolt, push uploads your database changes to a remote repository like DoltHub or DoltLab.

Example:

# Push changes to Dolt
$ dolt push origin main
/ Uploading...
To https://doltremoteapi.dolthub.com/dolthub/employee_db
 * [new branch]          main -> main

Your changes—including new rows, schema modifications, or version history—are now accessible to collaborators.

Key Difference

Pushing in Dolt doesn’t just upload changes—it enables a new paradigm for collaborative data management. Your teammates can pull both data and schema updates, review changes, and even merge different versions in a Git-like workflow.

Why These Comparisons Matter

Understanding how clone, pull, and push work in Dolt versus Git underscores Dolt’s revolutionary approach to versioning and managing data. Where Git brought clarity and collaboration to software development, Dolt is doing the same for databases. By combining SQL familiarity with Git-like commands, Dolt enables teams to work on data collaboratively, track changes over time, and manage branching and merging workflows like never before.

For MySQL users, Dolt introduces a new world of version control. No more manual backups or clunky migration scripts—Dolt brings the power of Git-like collaboration into your database environment.

What’s Next?

In the next installment of this blog series, we’ll take a closer look at branching and merging in Dolt, comparing these features to their Git counterparts. How does Dolt handle schema conflicts? Can you merge a teammate’s data updates seamlessly? Stay tuned to find out!

Until next time, thanks for reading and don't forget to check out each of our cool products below:

SHARE

JOIN THE DATA EVOLUTION

Get started with Dolt

Or join our mailing list to get product updates.