docs/reference/protected-branches.md
Beads does not need a protected-branch workaround in current releases.
Issue data is stored in Dolt under refs/dolt/data, separate from normal Git
branches such as main. Beads commands do not commit issue updates to your
current code branch, so GitHub, GitLab, and Bitbucket branch protection rules
continue to apply only to your code history.
Initialize beads in the project:
bd init
Commit the small tracked configuration files if your project policy requires them:
git add .beads/.gitignore .beads/metadata.json .beads/config.yaml .gitignore
git commit -m "Initialize beads issue tracker"
The local Dolt database directory remains gitignored. Sync issue data through a Dolt remote:
bd dolt pull
bd dolt push
No beads-sync Git branch, protected-branch exception, or beads-managed Git
worktree is required.
Protected branches guard Git refs such as refs/heads/main. Dolt stores beads
data in its own ref namespace. That means:
bd create, bd update, and bd close do not create commits on main.bd dolt push pushes Dolt data, not a code branch.For a shared tracker:
bd init --team
bd dolt pull
bd ready
bd update <id> --claim
bd dolt push
Pull before starting work and push before handing off so other clones see the latest issue state.
Older beads versions documented an experimental sync.branch workflow that
committed .beads changes to a branch such as beads-sync and used hidden Git
worktrees under .git/beads-worktrees/. That workflow has been removed.
If an old checkout still has sync-branch config, clear it:
bd config set sync.branch ""
If stale hidden worktrees prevent branch checkout, remove them and prune Git's worktree registry:
rm -rf .git/beads-worktrees
rm -rf .git/worktrees/beads-*
git worktree prune
If a remote beads-sync branch exists only for the removed workflow, archive or
delete it according to your repository policy after confirming all current issue
data has been synced through Dolt.
bd dolt push Has No RemoteAdd or inspect the Dolt remote:
bd dolt remote list
bd dolt remote add origin <remote-url>
bd dolt push
bd dolt pullDolt reports database-level conflicts separately from Git branch conflicts. Use the merge strategy or doctor guidance printed by the failed command:
bd vc merge <branch> --strategy [ours|theirs]
bd doctor --fix
Refresh generated hooks:
bd hooks install