bit is a clean, intuitive layer over Git that uses plain English and readable tags to simplify common version control tasks.
- No flags
- No staging
- No Git-isms
- Just clean, natural workflows
- save β Like hitting Save in a doc; frequent, safe, and cheap
- bundle β Combines all saves into one polished commit (e.g., before opening a PR)
- publish β Bundles and pushes your work. Opens a PR if supported
- compare β View changes since your last save, or between named commits
- Human-readable tags like
user-profile-3are automatically assigned to saves - All metadata lives in Git β no
.bit/folder or state tracking outside Git itself
| Command | Description | Git Equivalent (Rough) |
|---|---|---|
| bit save [message] | Save your current work. Message optional | git add -A && git commit -m "..." |
| bit compare | Show unsaved changes since last save | git diff |
| bit compare last 3 | Show changes across last 3 saves | git diff HEAD~3 |
| bit compare [tag] | Show diff from a specific save | git diff [commit] |
| bit bundle [message] | Combine all saves since last bundle into one clean commit | git reset --soft [base] && git commit |
| bit publish [message] | Bundle and push to remote. Opens PR if supported | git push origin HEAD + optional GitHub CLI |
| bit undo | Undo the last save. Warns if you have unsaved work | git reset --hard HEAD~1 |
| bit redo | Reapply a previously undone save (if possible) | git reflog + custom logic |
| bit history | Show current branch saves and recent published bundles | git log (cleaned up and grouped) |
| bit history [bundle-name] | Expand list of saves inside a given bundle | git log scoped to bundle |
| bit sync | Pull updates from main and rebase into current branch | git fetch + git rebase origin/main |
| bit status | Show current branch, save state, and publish status | git status (simplified) |
| bit begin [branch-name] | Start a new feature branch from main | git checkout -b [branch] origin/main |
Branch: user-profile
[unsaved] user-profile-4 (not yet saved)
[ 3m ago] user-profile-3 "Style tweaks"
[ 1h ago] user-profile-2 "Add logout button"
[12h ago] user-profile-1 "Start user profile"
[ 2d ago] login-flow [PR #32] "Implement login UI"
ββ login-flow-3 "Wire up API"
ββ login-flow-2 "Add login form markup"
ββ login-flow-1 "Initial commit"
[ 3d ago] menu [PR #31] "Menu polish pass"
ββ menu-2 "Fix highlight bug"
ββ menu-1 "Add menu layout"
- Saves are numbered by branch: user-profile-1, user-profile-2, etc.
- Bundles show PR info if available: [PR #32]
- Drill into bundles with:
bit history login-flow - No Git terms like βstagingβ or βHEADβ
- Tags follow the format: branch-name-N (e.g. auth-form-2)
- Stored directly in commit messages: [bit:user-profile-3] Add logout button
- On collision, disambiguated with a short commit suffix: user-profile-3-c0f
- No tag file or external state β all info is derived from Git history
- Save early, save often
- Publish clean work, not messy WIP
- Use readable, traceable tags
- Keep commands obvious and minimal
- Never make users think about Git internals
Bit turns version control into a natural part of your workflow β not a separate ritual.