website/versioned_docs/version-1.0.0/reference/git-integration.md
How beads integrates with git.
Beads uses git for:
Data storage and sync are handled by Dolt (a version-controlled SQL database).
.beads/
├── config.toml # Project config (git-tracked)
├── metadata.json # Backend metadata (git-tracked)
└── dolt/ # Dolt database and server data (gitignored)
bd hooks install
Installs:
bd hooks status
bd hooks uninstall
Dolt handles merge conflicts at the database level using its built-in merge capabilities. When conflicts arise during sync, Dolt identifies conflicting rows and allows resolution through SQL.
# Check for and fix conflicts
bd doctor --fix
Dolt stores data under refs/dolt/data, separate from Git refs. This means beads data doesn't conflict with protected Git branches — no special branch flag is needed.
Beads works in git worktrees using embedded mode:
# In worktree — just run commands directly
bd create "Task"
bd list
git checkout -b feature-x
bd create "Feature X" -t feature
# Work...
bd dolt push
git push
# In fork
bd init --contributor
# Work in separate planning repo...
bd dolt push
bd init --team
# All team members share the Dolt database
bd dolt pull # Pull latest changes from Dolt remote
bd dolt push # Push your changes to Dolt remote
After merging branches:
bd duplicates --auto-merge
bd hooks installbd dolt push at session endbd dolt pull to get latest issues