A commit is an immutable snapshot of a VM’s full state — filesystem, memory, CPU registers — captured at the moment you ranDocumentation Index
Fetch the complete documentation index at: https://docs.vers.sh/llms.txt
Use this file to discover all available pages before exploring further.
vers commit. Commits have a content-addressable id (e.g. c123456789abcdef) that uniquely identifies that exact state.
Commits are the currency of sharing, reuse, and reproducibility in Vers. Everything that “starts from somewhere” starts from a commit.
What a commit captures
| Captured | Not captured |
|---|---|
| Full root filesystem | External connections (TCP sessions survive memory but won’t recover if the network peer is gone) |
| Memory (every running process) | IP address (new VMs get new IPs) |
| CPU registers | SSH keys that weren’t on disk at commit time |
| Environment variables in running processes | Account-level vers env settings (those are injected at boot, not baked in) |
Creating a commit
Restoring from a commit
Commits vs branches vs forks
These words get muddled — a quick disambiguation:| Operation | Input | Output |
|---|---|---|
vers commit | A running VM | A new commit id |
vers branch <vm> | A running VM | A new VM (plus a fresh commit, created internally) |
vers branch <commit> | A commit | A new VM |
vers run-commit <commit> | A commit | A new VM (conceptually identical to vers branch <commit>) |
Lifetime and deletion
Commits persist until you explicitly delete them withvers commit delete. They survive:
- The deletion of the VM that produced them
- The deletion of the child VMs they created
- Your CLI logging out and back in
Tagging commits
Commit ids are long and unmemorable. Tags fix that:vers tag update — and cheap. Deleting a tag doesn’t touch the commit it pointed at.
Anywhere a commit id is accepted (vers run-commit, vers branch, vers build’s FROM), you can pass a tag name instead.
Repositories
For structured naming, tags can live inside repositories:my-app:latest, my-app:v1.2, etc. A repo is a namespace for a related group of commits. Repos can be public (other orgs can fork them) or private.
See vers repo for the full workflow; most users can get away with plain tags until they need the structure.
A typical workflow
See also
- VMs — what you commit from
- vers commit, vers run-commit, vers tag
- Dockerfile support — build commits declaratively