Git Integration
How beads integrates with git.
Overview
Beads uses git for:
- Project hosting - Your code repository also hosts beads configuration
- Hooks - Auto-sync on git operations
Data storage and sync are handled by Dolt (a version-controlled SQL database).
File Structure
.beads/
├── config.toml # Project config (git-tracked)
├── metadata.json # Backend metadata (git-tracked)
└── dolt/ # Dolt database and server data (gitignored)
Git Hooks
Installation
bd hooks install
Installs:
- pre-commit - Triggers Dolt commit
- post-merge - Triggers Dolt sync after pull
- pre-push - Ensures Dolt sync before push
Status
bd hooks status
Uninstall
bd hooks uninstall
Conflict Resolution
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
Protected Branches
For protected main branches:
bd init --branch beads-sync
This:
- Creates a separate
beads-syncbranch - Syncs issues to that branch
- Avoids direct commits to main
Git Worktrees
Beads works in git worktrees using embedded mode:
# In worktree — just run commands directly
bd create "Task"
bd list
Branch Workflows
Feature Branch
git checkout -b feature-x
bd create "Feature X" -t feature
# Work...
bd sync
git push
Fork Workflow
# In fork
bd init --contributor
# Work in separate planning repo...
bd sync
Team Workflow
bd init --team
# All team members share the Dolt database
bd sync # Pulls latest changes via Dolt replication
Duplicate Detection
After merging branches:
bd duplicates --auto-merge
Best Practices
- Install hooks -
bd hooks install - Sync regularly -
bd syncat session end - Pull before work - Get latest issues
- Worktrees use embedded mode automatically